1 // Copyright 2009 The Archiveopteryx Developers <info@aox.org> 2 3 #ifndef UTF_H 4 #define UTF_H 5 6 #include "codec.h" 7 8 9 class Utf8Codec: public Codec 10 { 11 public: 12 Utf8Codec(); 13 14 EString fromUnicode( const UString & ); 15 UString toUnicode( const EString & ); 16 17 protected: 18 bool pgutf; 19 }; 20 21 22 class PgUtf8Codec: public Utf8Codec 23 { 24 public: 25 PgUtf8Codec(); 26 }; 27 28 29 class Utf16Codec: public Codec 30 { 31 public: 32 Utf16Codec(); 33 34 EString fromUnicode( const UString & ); 35 UString toUnicode( const EString & ); 36 private: 37 bool be; 38 bool bom; 39 }; 40 41 42 class Utf16LeCodec: public Codec 43 { 44 public: 45 Utf16LeCodec(); 46 47 EString fromUnicode( const UString & ); 48 UString toUnicode( const EString & ); 49 }; 50 51 52 class Utf16BeCodec: public Codec 53 { 54 public: 55 Utf16BeCodec(); 56 57 EString fromUnicode( const UString & ); 58 UString toUnicode( const EString & ); 59 }; 60 61 62 class Utf7Codec: public Codec 63 { 64 public: 65 Utf7Codec(); 66 67 EString fromUnicode( const UString & ); 68 UString toUnicode( const EString & ); 69 70 protected: 71 EString e( const UString & ); 72 Utf7Codec( bool ); 73 74 private: 75 bool broken; 76 }; 77 78 79 class MUtf7Codec: public Utf7Codec 80 { 81 public: 82 MUtf7Codec(); 83 }; 84 85 86 #endif 87