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