1 /*************************************************************************
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
5 * Copyright 2008 by Sun Microsystems, Inc.
7 * OpenOffice.org - a multi-platform office productivity suite
9 * $RCSfile: textenc.h,v $
12 * This file is part of OpenOffice.org.
14 * OpenOffice.org is free software: you can redistribute it and/or modify
15 * it under the terms of the GNU Lesser General Public License version 3
16 * only, as published by the Free Software Foundation.
18 * OpenOffice.org is distributed in the hope that it will be useful,
19 * but WITHOUT ANY WARRANTY; without even the implied warranty of
20 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21 * GNU Lesser General Public License version 3 for more details
22 * (a copy is included in the LICENSE file that accompanied this code).
24 * You should have received a copy of the GNU Lesser General Public License
25 * version 3 along with OpenOffice.org. If not, see
26 * <http://www.openoffice.org/license.html>
27 * for a copy of the LGPLv3 License.
29 ************************************************************************/
31 #ifndef _RTL_TEXTENC_H
32 #define _RTL_TEXTENC_H
34 #ifdef _SOLAR_RSC_INVOKED
35 /* Enable resources to use these values, rsc can't handle casts */
36 #define RTL_TEXTENC_CAST( val ) (val)
38 #else /* !_SOLAR_RSC_INVOKED */
41 #include <sal/types.h>
44 /** The various supported text encodings.
46 Possible values include a wide range of single- and multi-byte encodings
47 (ranging from RTL_TEXTENCODING_MS_1252 to RTL_TEXTENCODING_GB_18030),
48 the ISO 10646 (Unicode) specific encodings RTL_TEXTENCODING_UCS4 and
49 RTL_TEXTENCODING_UCS2 (aka RTL_TEXTENCODING_UNICODE), and
50 RTL_TEXTENCODING_DONTKNOW to indicate an unknown or missing encoding.
52 typedef sal_uInt16 rtl_TextEncoding
;
54 #define RTL_TEXTENC_CAST( val ) ((rtl_TextEncoding) val)
56 #endif /* _SOLAR_RSC_INVOKED */
58 #define RTL_TEXTENCODING_DONTKNOW (RTL_TEXTENC_CAST( 0 ))
59 #define RTL_TEXTENCODING_MS_1252 (RTL_TEXTENC_CAST( 1 ))
60 #define RTL_TEXTENCODING_APPLE_ROMAN (RTL_TEXTENC_CAST( 2 ))
61 #define RTL_TEXTENCODING_IBM_437 (RTL_TEXTENC_CAST( 3 ))
62 #define RTL_TEXTENCODING_IBM_850 (RTL_TEXTENC_CAST( 4 ))
63 #define RTL_TEXTENCODING_IBM_860 (RTL_TEXTENC_CAST( 5 ))
64 #define RTL_TEXTENCODING_IBM_861 (RTL_TEXTENC_CAST( 6 ))
65 #define RTL_TEXTENCODING_IBM_863 (RTL_TEXTENC_CAST( 7 ))
66 #define RTL_TEXTENCODING_IBM_865 (RTL_TEXTENC_CAST( 8 ))
67 /* Reserved: RTL_TEXTENCODING_SYSTEM (RTL_TEXTENC_CAST( 9 )) */
68 #define RTL_TEXTENCODING_SYMBOL (RTL_TEXTENC_CAST( 10 ))
69 #define RTL_TEXTENCODING_ASCII_US (RTL_TEXTENC_CAST( 11 ))
70 #define RTL_TEXTENCODING_ISO_8859_1 (RTL_TEXTENC_CAST( 12 ))
71 #define RTL_TEXTENCODING_ISO_8859_2 (RTL_TEXTENC_CAST( 13 ))
72 #define RTL_TEXTENCODING_ISO_8859_3 (RTL_TEXTENC_CAST( 14 ))
73 #define RTL_TEXTENCODING_ISO_8859_4 (RTL_TEXTENC_CAST( 15 ))
74 #define RTL_TEXTENCODING_ISO_8859_5 (RTL_TEXTENC_CAST( 16 ))
75 #define RTL_TEXTENCODING_ISO_8859_6 (RTL_TEXTENC_CAST( 17 ))
76 #define RTL_TEXTENCODING_ISO_8859_7 (RTL_TEXTENC_CAST( 18 ))
77 #define RTL_TEXTENCODING_ISO_8859_8 (RTL_TEXTENC_CAST( 19 ))
78 #define RTL_TEXTENCODING_ISO_8859_9 (RTL_TEXTENC_CAST( 20 ))
79 #define RTL_TEXTENCODING_ISO_8859_14 (RTL_TEXTENC_CAST( 21 ))
80 #define RTL_TEXTENCODING_ISO_8859_15 (RTL_TEXTENC_CAST( 22 ))
81 #define RTL_TEXTENCODING_IBM_737 (RTL_TEXTENC_CAST( 23 ))
82 #define RTL_TEXTENCODING_IBM_775 (RTL_TEXTENC_CAST( 24 ))
83 #define RTL_TEXTENCODING_IBM_852 (RTL_TEXTENC_CAST( 25 ))
84 #define RTL_TEXTENCODING_IBM_855 (RTL_TEXTENC_CAST( 26 ))
85 #define RTL_TEXTENCODING_IBM_857 (RTL_TEXTENC_CAST( 27 ))
86 #define RTL_TEXTENCODING_IBM_862 (RTL_TEXTENC_CAST( 28 ))
87 #define RTL_TEXTENCODING_IBM_864 (RTL_TEXTENC_CAST( 29 ))
88 #define RTL_TEXTENCODING_IBM_866 (RTL_TEXTENC_CAST( 30 ))
89 #define RTL_TEXTENCODING_IBM_869 (RTL_TEXTENC_CAST( 31 ))
90 #define RTL_TEXTENCODING_MS_874 (RTL_TEXTENC_CAST( 32 ))
91 #define RTL_TEXTENCODING_MS_1250 (RTL_TEXTENC_CAST( 33 ))
92 #define RTL_TEXTENCODING_MS_1251 (RTL_TEXTENC_CAST( 34 ))
93 #define RTL_TEXTENCODING_MS_1253 (RTL_TEXTENC_CAST( 35 ))
94 #define RTL_TEXTENCODING_MS_1254 (RTL_TEXTENC_CAST( 36 ))
95 #define RTL_TEXTENCODING_MS_1255 (RTL_TEXTENC_CAST( 37 ))
96 #define RTL_TEXTENCODING_MS_1256 (RTL_TEXTENC_CAST( 38 ))
97 #define RTL_TEXTENCODING_MS_1257 (RTL_TEXTENC_CAST( 39 ))
98 #define RTL_TEXTENCODING_MS_1258 (RTL_TEXTENC_CAST( 40 ))
99 #define RTL_TEXTENCODING_APPLE_ARABIC (RTL_TEXTENC_CAST( 41 ))
100 #define RTL_TEXTENCODING_APPLE_CENTEURO (RTL_TEXTENC_CAST( 42 ))
101 #define RTL_TEXTENCODING_APPLE_CROATIAN (RTL_TEXTENC_CAST( 43 ))
102 #define RTL_TEXTENCODING_APPLE_CYRILLIC (RTL_TEXTENC_CAST( 44 ))
103 #define RTL_TEXTENCODING_APPLE_DEVANAGARI (RTL_TEXTENC_CAST( 45 ))
104 #define RTL_TEXTENCODING_APPLE_FARSI (RTL_TEXTENC_CAST( 46 ))
105 #define RTL_TEXTENCODING_APPLE_GREEK (RTL_TEXTENC_CAST( 47 ))
106 #define RTL_TEXTENCODING_APPLE_GUJARATI (RTL_TEXTENC_CAST( 48 ))
107 #define RTL_TEXTENCODING_APPLE_GURMUKHI (RTL_TEXTENC_CAST( 49 ))
108 #define RTL_TEXTENCODING_APPLE_HEBREW (RTL_TEXTENC_CAST( 50 ))
109 #define RTL_TEXTENCODING_APPLE_ICELAND (RTL_TEXTENC_CAST( 51 ))
110 #define RTL_TEXTENCODING_APPLE_ROMANIAN (RTL_TEXTENC_CAST( 52 ))
111 #define RTL_TEXTENCODING_APPLE_THAI (RTL_TEXTENC_CAST( 53 ))
112 #define RTL_TEXTENCODING_APPLE_TURKISH (RTL_TEXTENC_CAST( 54 ))
113 #define RTL_TEXTENCODING_APPLE_UKRAINIAN (RTL_TEXTENC_CAST( 55 ))
114 #define RTL_TEXTENCODING_APPLE_CHINSIMP (RTL_TEXTENC_CAST( 56 ))
115 #define RTL_TEXTENCODING_APPLE_CHINTRAD (RTL_TEXTENC_CAST( 57 ))
116 #define RTL_TEXTENCODING_APPLE_JAPANESE (RTL_TEXTENC_CAST( 58 ))
117 #define RTL_TEXTENCODING_APPLE_KOREAN (RTL_TEXTENC_CAST( 59 ))
118 #define RTL_TEXTENCODING_MS_932 (RTL_TEXTENC_CAST( 60 ))
119 #define RTL_TEXTENCODING_MS_936 (RTL_TEXTENC_CAST( 61 ))
120 #define RTL_TEXTENCODING_MS_949 (RTL_TEXTENC_CAST( 62 ))
121 #define RTL_TEXTENCODING_MS_950 (RTL_TEXTENC_CAST( 63 ))
122 #define RTL_TEXTENCODING_SHIFT_JIS (RTL_TEXTENC_CAST( 64 ))
123 #define RTL_TEXTENCODING_GB_2312 (RTL_TEXTENC_CAST( 65 ))
124 #define RTL_TEXTENCODING_GBT_12345 (RTL_TEXTENC_CAST( 66 ))
125 #define RTL_TEXTENCODING_GBK (RTL_TEXTENC_CAST( 67 ))
126 #define RTL_TEXTENCODING_BIG5 (RTL_TEXTENC_CAST( 68 ))
127 #define RTL_TEXTENCODING_EUC_JP (RTL_TEXTENC_CAST( 69 ))
128 #define RTL_TEXTENCODING_EUC_CN (RTL_TEXTENC_CAST( 70 ))
129 #define RTL_TEXTENCODING_EUC_TW (RTL_TEXTENC_CAST( 71 ))
130 #define RTL_TEXTENCODING_ISO_2022_JP (RTL_TEXTENC_CAST( 72 ))
131 #define RTL_TEXTENCODING_ISO_2022_CN (RTL_TEXTENC_CAST( 73 ))
132 #define RTL_TEXTENCODING_KOI8_R (RTL_TEXTENC_CAST( 74 ))
133 #define RTL_TEXTENCODING_UTF7 (RTL_TEXTENC_CAST( 75 ))
134 #define RTL_TEXTENCODING_UTF8 (RTL_TEXTENC_CAST( 76 ))
135 #define RTL_TEXTENCODING_ISO_8859_10 (RTL_TEXTENC_CAST( 77 ))
136 #define RTL_TEXTENCODING_ISO_8859_13 (RTL_TEXTENC_CAST( 78 ))
137 #define RTL_TEXTENCODING_EUC_KR (RTL_TEXTENC_CAST( 79 ))
138 #define RTL_TEXTENCODING_ISO_2022_KR (RTL_TEXTENC_CAST( 80 ))
139 #define RTL_TEXTENCODING_JIS_X_0201 (RTL_TEXTENC_CAST( 81 ))
140 #define RTL_TEXTENCODING_JIS_X_0208 (RTL_TEXTENC_CAST( 82 ))
141 #define RTL_TEXTENCODING_JIS_X_0212 (RTL_TEXTENC_CAST( 83 ))
142 #define RTL_TEXTENCODING_MS_1361 (RTL_TEXTENC_CAST( 84 ))
143 #define RTL_TEXTENCODING_GB_18030 (RTL_TEXTENC_CAST( 85 ))
144 #define RTL_TEXTENCODING_BIG5_HKSCS (RTL_TEXTENC_CAST( 86 ))
145 #define RTL_TEXTENCODING_TIS_620 (RTL_TEXTENC_CAST( 87 ))
146 #define RTL_TEXTENCODING_KOI8_U (RTL_TEXTENC_CAST( 88 ))
147 #define RTL_TEXTENCODING_ISCII_DEVANAGARI (RTL_TEXTENC_CAST( 89 ))
148 #define RTL_TEXTENCODING_JAVA_UTF8 (RTL_TEXTENC_CAST( 90 ))
149 #define RTL_TEXTENCODING_ADOBE_STANDARD (RTL_TEXTENC_CAST( 91 ))
150 #define RTL_TEXTENCODING_ADOBE_SYMBOL (RTL_TEXTENC_CAST( 92 ))
151 #define RTL_TEXTENCODING_PT154 (RTL_TEXTENC_CAST( 93 ))
152 #define RTL_TEXTENCODING_ADOBE_DINGBATS (RTL_TEXTENC_CAST( 94 ))
153 /* ATTENTION! Whenever some encoding is added here, make sure to update
154 * rtl_isOctetTextEncoding in tencinfo.c.
157 #define RTL_TEXTENCODING_USER_START (RTL_TEXTENC_CAST( 0x8000 ))
158 #define RTL_TEXTENCODING_USER_END (RTL_TEXTENC_CAST( 0xEFFF ))
160 #define RTL_TEXTENCODING_UCS4 (RTL_TEXTENC_CAST( 0xFFFE ))
161 #define RTL_TEXTENCODING_UCS2 (RTL_TEXTENC_CAST( 0xFFFF ))
162 #define RTL_TEXTENCODING_UNICODE RTL_TEXTENCODING_UCS2
164 /****** Overview over the TextEncodings *****
165 # Arabic (Apple Macintosh) RTL_TEXTENCODING_APPLE_ARABIC
166 Arabic (DOS/OS2-864) RTL_TEXTENCODING_IBM_864
167 Arabic (ISO-8859-6) RTL_TEXTENCODING_ISO_8859_6
168 Arabic (Windows-1256) RTL_TEXTENCODING_MS_1256
170 Baltic (DOS/OS2-775) RTL_TEXTENCODING_IBM_775
171 Baltic (ISO-8859-4) RTL_TEXTENCODING_ISO_8859_4
172 Baltic (Windows-1257) RTL_TEXTENCODING_MS_1257
174 Central European (Apple Macintosh) RTL_TEXTENCODING_APPLE_CENTEURO
175 Central European (Apple Macintosh/Croatian) RTL_TEXTENCODING_APPLE_CROATIAN
176 Central European (Apple Macintosh/Romanian) RTL_TEXTENCODING_APPLE_ROMANIAN
177 Central European (DOS/OS2-852) RTL_TEXTENCODING_IBM_852
178 Central European (ISO-8859-2) RTL_TEXTENCODING_ISO_8859_2
179 Central European (ISO-8859-10) RTL_TEXTENCODING_ISO_8859_10
180 Central European (ISO-8859-13) RTL_TEXTENCODING_ISO_8859_13
181 Central European (Windows-1250/WinLatin 2) RTL_TEXTENCODING_MS_1250
183 Chinese Simplified (Apple Macintosh) RTL_TEXTENCODING_APPLE_CHINSIMP
184 Chinese Simplified (EUC-CN) RTL_TEXTENCODING_EUC_CN
185 Chinese Simplified (GB-2312) RTL_TEXTENCODING_GB_2312
186 Chinese Simplified (GBK/GB-2312-80) RTL_TEXTENCODING_GBK
187 # Chinese Simplified (ISO-2022-CN) RTL_TEXTENCODING_ISO_2022_CN
188 Chinese Simplified (Windows-936) RTL_TEXTENCODING_MS_936
189 # Chinese Simplified (GB-18030) RTL_TEXTENCODING_GB_18030
191 Chinese Traditional (Apple Macintosh) RTL_TEXTENCODING_APPLE_CHINTRAD
192 Chinese Traditional (BIG5) RTL_TEXTENCODING_BIG5
193 # Chinese Traditional (EUC-TW) RTL_TEXTENCODING_EUC_TW
194 Chinese Traditional (GBT-12345) RTL_TEXTENCODING_GBT_12345
195 Chinese Traditional (Windows-950) RTL_TEXTENCODING_MS_950
196 Chinese Traditional (BIG5-HKSCS) RTL_TEXTENCODING_BIG5_HKSCS
198 Cyrillic (Apple Macintosh) RTL_TEXTENCODING_APPLE_CYRILLIC
199 Cyrillic (Apple Macintosh/Ukrainian) RTL_TEXTENCODING_APPLE_UKRAINIAN
200 Cyrillic (DOS/OS2-855) RTL_TEXTENCODING_IBM_855
201 Cyrillic (DOS/OS2-866/Russian) RTL_TEXTENCODING_IBM_866
202 Cyrillic (ISO-8859-5) RTL_TEXTENCODING_ISO_8859_5
203 Cyrillic (KOI8-R) RTL_TEXTENCODING_KOI8_R
204 Cyrillic (KOI8-U) RTL_TEXTENCODING_KOI8_U
205 Cyrillic (Windows-1251) RTL_TEXTENCODING_MS_1251
207 Greek (Apple Macintosh) RTL_TEXTENCODING_APPLE_GREEK
208 Greek (DOS/OS2-737) RTL_TEXTENCODING_IBM_737
209 Greek (DOS/OS2-869/Modern) RTL_TEXTENCODING_IBM_869
210 Greek (ISO-8859-7) RTL_TEXTENCODING_ISO_8859_7
211 Greek (Windows-1253) RTL_TEXTENCODING_MS_1253
213 # Hebrew (Apple Macintosh) RTL_TEXTENCODING_APPLE_HEBREW
214 Hebrew (DOS/OS2-862) RTL_TEXTENCODING_IBM_862
215 Hebrew (ISO-8859-8) RTL_TEXTENCODING_ISO_8859_8
216 Hebrew (Windows-1255) RTL_TEXTENCODING_MS_1255
218 Korean (Apple Macintosh) RTL_TEXTENCODING_APPLE_KOREAN
219 Korean (EUC-KR) RTL_TEXTENCODING_EUC_KR
220 # Korean (ISO-2022-KR) RTL_TEXTENCODING_ISO_2022_KR
221 Korean (Windows-Wansung-949) RTL_TEXTENCODING_MS_949
222 Korean (Windows-Johab-1361) RTL_TEXTENCODING_MS_1361
224 Latin 3 (ISO-8859-3) RTL_TEXTENCODING_ISO_8859_3
226 Indian (ISCII Devanagari) RTL_TEXTENCODING_ISCII_DEVANAGARI
228 Japanese (Apple Macintosh) RTL_TEXTENCODING_APPLE_JAPANESE
229 Japanese (EUC-JP) RTL_TEXTENCODING_EUC_JP
230 # Japanese (ISO-2022-JP) RTL_TEXTENCODING_ISO_2022_JP
231 Japanese (Shift-JIS) RTL_TEXTENCODING_SHIFT_JIS
232 Japanese (Windows-932) RTL_TEXTENCODING_MS_932
234 Symbol RTL_TEXTENCODING_SYMBOL
236 # Thai (Apple Macintosh) RTL_TEXTENCODING_APPLE_THAI
237 Thai (Dos/Windows-874) RTL_TEXTENCODING_MS_874
238 Thai (TIS 620) RTL_TEXTENCODING_TIS_620
240 Turkish (Apple Macintosh) RTL_TEXTENCODING_APPLE_TURKISH
241 Turkish (DOS/OS2-857) RTL_TEXTENCODING_IBM_857
242 Turkish (ISO-8859-9) RTL_TEXTENCODING_ISO_8859_9
243 Turkish (Windows-1254) RTL_TEXTENCODING_MS_1254
245 Unicode (UTF-7) RTL_TEXTENCODING_UTF7
246 Unicode (UTF-8) RTL_TEXTENCODING_UTF8
247 Unicode (Java's modified UTF-8) RTL_TEXTENCODING_JAVA_UTF8
249 Vietnamese (Windows-1258) RTL_TEXTENCODING_MS_1258
251 Western (Apple Macintosh) RTL_TEXTENCODING_APPLE_ROMAN
252 Western (Apple Macintosh/Icelandic) RTL_TEXTENCODING_APPLE_ICELAND
253 Western (ASCII/US) RTL_TEXTENCODING_ASCII_US
254 Western (DOS/OS2-437/US) RTL_TEXTENCODING_IBM_437
255 Western (DOS/OS2-850/International) RTL_TEXTENCODING_IBM_850
256 Western (DOS/OS2-860/Portugese) RTL_TEXTENCODING_IBM_860
257 Western (DOS/OS2-861/Icelandic) RTL_TEXTENCODING_IBM_861
258 Western (DOS/OS2-863/Canadian-French) RTL_TEXTENCODING_IBM_863
259 Western (DOS/OS2-865/Nordic) RTL_TEXTENCODING_IBM_865
260 Western (ISO-8859-1) RTL_TEXTENCODING_ISO_8859_1
261 Western (ISO-8859-14) RTL_TEXTENCODING_ISO_8859_14
262 Western (ISO-8859-15/EURO) RTL_TEXTENCODING_ISO_8859_15
263 Western (Window-1252/WinLatin 1) RTL_TEXTENCODING_MS_1252
265 Not known and currently not supported
266 # RTL_TEXTENCODING_APPLE_DEVANAGARI
267 # RTL_TEXTENCODING_APPLE_FARSI
268 # RTL_TEXTENCODING_APPLE_GUJARATI
269 # RTL_TEXTENCODING_APPLE_GURMUKHI
271 Only for internal implementations and not useful for user interface.
272 These encodings are not used for text encodings, only used for
273 font-/textoutput encodings.
274 Japanese (JIS 0201) RTL_TEXTENCODING_JISX_0201
275 Japanese (JIS 0208) RTL_TEXTENCODING_JISX_0208
276 Japanese (JIS 0212) RTL_TEXTENCODING_JISX_0212
278 # Currently not implemented
281 #endif /* _RTL_TEXTENC_H */