1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31 #ifndef MBFL_ENCODING_H
32 #define MBFL_ENCODING_H
33
34 #include "mbfl_defs.h"
35
36 enum mbfl_no_encoding {
37 mbfl_no_encoding_invalid = -1,
38 mbfl_no_encoding_pass,
39 mbfl_no_encoding_auto,
40 mbfl_no_encoding_wchar,
41 mbfl_no_encoding_byte2be,
42 mbfl_no_encoding_byte2le,
43 mbfl_no_encoding_byte4be,
44 mbfl_no_encoding_byte4le,
45 mbfl_no_encoding_base64,
46 mbfl_no_encoding_uuencode,
47 mbfl_no_encoding_html_ent,
48 mbfl_no_encoding_qprint,
49 mbfl_no_encoding_7bit,
50 mbfl_no_encoding_8bit,
51 mbfl_no_encoding_charset_min,
52 mbfl_no_encoding_ucs4,
53 mbfl_no_encoding_ucs4be,
54 mbfl_no_encoding_ucs4le,
55 mbfl_no_encoding_ucs2,
56 mbfl_no_encoding_ucs2be,
57 mbfl_no_encoding_ucs2le,
58 mbfl_no_encoding_utf32,
59 mbfl_no_encoding_utf32be,
60 mbfl_no_encoding_utf32le,
61 mbfl_no_encoding_utf16,
62 mbfl_no_encoding_utf16be,
63 mbfl_no_encoding_utf16le,
64 mbfl_no_encoding_utf8,
65 mbfl_no_encoding_utf8_docomo,
66 mbfl_no_encoding_utf8_kddi_a,
67 mbfl_no_encoding_utf8_kddi_b,
68 mbfl_no_encoding_utf8_sb,
69 mbfl_no_encoding_utf7,
70 mbfl_no_encoding_utf7imap,
71 mbfl_no_encoding_ascii,
72 mbfl_no_encoding_euc_jp,
73 mbfl_no_encoding_eucjp2004,
74 mbfl_no_encoding_sjis,
75 mbfl_no_encoding_eucjp_win,
76 mbfl_no_encoding_sjis_open,
77 mbfl_no_encoding_sjis_docomo,
78 mbfl_no_encoding_sjis_kddi,
79 mbfl_no_encoding_sjis_sb,
80 mbfl_no_encoding_sjis_mac,
81 mbfl_no_encoding_sjis2004,
82 mbfl_no_encoding_cp932,
83 mbfl_no_encoding_cp51932,
84 mbfl_no_encoding_jis,
85 mbfl_no_encoding_2022jp,
86 mbfl_no_encoding_2022jp_2004,
87 mbfl_no_encoding_2022jp_kddi,
88 mbfl_no_encoding_2022jpms,
89 mbfl_no_encoding_gb18030,
90 mbfl_no_encoding_cp1252,
91 mbfl_no_encoding_cp1254,
92 mbfl_no_encoding_8859_1,
93 mbfl_no_encoding_8859_2,
94 mbfl_no_encoding_8859_3,
95 mbfl_no_encoding_8859_4,
96 mbfl_no_encoding_8859_5,
97 mbfl_no_encoding_8859_6,
98 mbfl_no_encoding_8859_7,
99 mbfl_no_encoding_8859_8,
100 mbfl_no_encoding_8859_9,
101 mbfl_no_encoding_8859_10,
102 mbfl_no_encoding_8859_13,
103 mbfl_no_encoding_8859_14,
104 mbfl_no_encoding_8859_15,
105 mbfl_no_encoding_euc_cn,
106 mbfl_no_encoding_cp936,
107 mbfl_no_encoding_euc_tw,
108 mbfl_no_encoding_big5,
109 mbfl_no_encoding_cp950,
110 mbfl_no_encoding_euc_kr,
111 mbfl_no_encoding_2022kr,
112 mbfl_no_encoding_uhc,
113 mbfl_no_encoding_hz,
114 mbfl_no_encoding_cp1251,
115 mbfl_no_encoding_cp866,
116 mbfl_no_encoding_koi8r,
117 mbfl_no_encoding_koi8u,
118 mbfl_no_encoding_8859_16,
119 mbfl_no_encoding_armscii8,
120 mbfl_no_encoding_cp850,
121 mbfl_no_encoding_jis_ms,
122 mbfl_no_encoding_cp50220,
123 mbfl_no_encoding_cp50220raw,
124 mbfl_no_encoding_cp50221,
125 mbfl_no_encoding_cp50222,
126 mbfl_no_encoding_charset_max
127 };
128
129 typedef enum mbfl_no_encoding mbfl_encoding_id;
130
131
132
133
134 typedef struct _mbfl_encoding {
135 enum mbfl_no_encoding no_encoding;
136 const char *name;
137 const char *mime_name;
138 const char *(*aliases)[];
139 const unsigned char *mblen_table;
140 unsigned int flag;
141 } mbfl_encoding;
142
143 MBFLAPI extern const mbfl_encoding * mbfl_name2encoding(const char *name);
144 MBFLAPI extern const mbfl_encoding * mbfl_no2encoding(enum mbfl_no_encoding no_encoding);
145 MBFLAPI extern enum mbfl_no_encoding mbfl_name2no_encoding(const char *name);
146 MBFLAPI extern const mbfl_encoding ** mbfl_get_supported_encodings();
147 MBFLAPI extern const char * mbfl_no_encoding2name(enum mbfl_no_encoding no_encoding);
148 MBFLAPI extern const char * mbfl_no2preferred_mime_name(enum mbfl_no_encoding no_encoding);
149 MBFLAPI extern int mbfl_is_support_encoding(const char *name);
150
151
152 #endif