1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
3 * This file is part of the LibreOffice project.
5 * This Source Code Form is subject to the terms of the Mozilla Public
6 * License, v. 2.0. If a copy of the MPL was not distributed with this
7 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
9 * This file incorporates work covered by the following license notice:
11 * Licensed to the Apache Software Foundation (ASF) under one or more
12 * contributor license agreements. See the NOTICE file distributed
13 * with this work for additional information regarding copyright
14 * ownership. The ASF licenses this file to you under the Apache
15 * License, Version 2.0 (the "License"); you may not use this file
16 * except in compliance with the License. You may obtain a copy of
17 * the License at http://www.apache.org/licenses/LICENSE-2.0 .
20 #include <config_locales.h>
22 #include "sal/config.h"
27 #include <cppunit/TestFixture.h>
28 #include <cppunit/extensions/HelperMacros.h>
30 #include "rtl/string.hxx"
31 #include "rtl/ustring.hxx"
32 #include "rtl/tencinfo.h"
33 #include "rtl/textcvt.h"
34 #include "rtl/textenc.h"
35 #include "sal/types.h"
36 #include <sal/macros.h>
37 #include <osl/diagnose.h>
41 struct SingleByteCharSet
{
42 rtl_TextEncoding m_nEncoding
;
43 sal_Unicode m_aMap
[256];
46 void testSingleByteCharSet(SingleByteCharSet
const & rSet
) {
48 sal_Unicode aUnicode
[256];
50 for (int i
= 0; i
< 256; ++i
) {
51 if (rSet
.m_aMap
[i
] != 0xFFFF) {
52 aText
[nNumber
++] = static_cast< sal_Char
>(i
);
56 rtl_TextToUnicodeConverter aConverter
57 = rtl_createTextToUnicodeConverter(rSet
.m_nEncoding
);
58 CPPUNIT_ASSERT_MESSAGE(OUStringToOString(OUString("rtl_createTextToUnicodeConverter(" + OUString::createFromAscii(rtl_getMimeCharsetFromTextEncoding(rSet
.m_nEncoding
)) + ") failed"),
59 RTL_TEXTENCODING_UTF8
).getStr(),
61 rtl_TextToUnicodeContext aContext
62 = rtl_createTextToUnicodeContext(aConverter
);
63 CPPUNIT_ASSERT_MESSAGE("rtl_createTextToUnicodeContext failed", aContext
!= NULL
);
67 nSize
= rtl_convertTextToUnicode(
68 aConverter
, aContext
, aText
, nNumber
, aUnicode
, nNumber
,
69 (RTL_TEXTTOUNICODE_FLAGS_UNDEFINED_ERROR
70 | RTL_TEXTTOUNICODE_FLAGS_MBUNDEFINED_ERROR
71 | RTL_TEXTTOUNICODE_FLAGS_INVALID_ERROR
),
73 CPPUNIT_ASSERT_EQUAL(nNumber
, nSize
);
74 CPPUNIT_ASSERT_EQUAL((sal_uInt32
)0, nInfo
);
75 CPPUNIT_ASSERT_EQUAL(nNumber
, nConverted
);
76 rtl_destroyTextToUnicodeContext(aConverter
, aContext
);
77 rtl_destroyTextToUnicodeConverter(aConverter
);
81 for (int i
= 0; i
< 256; ++i
) {
82 if (rSet
.m_aMap
[i
] != 0xFFFF && aUnicode
[j
] != rSet
.m_aMap
[i
]) {
83 CPPUNIT_ASSERT_MESSAGE(OUStringToOString(OUString("rSet.m_aMap[" + OUString::number(i
) + "] == " +
84 OUString::number(rSet
.m_aMap
[i
], 16)),
85 RTL_TEXTENCODING_UTF8
).getStr(),
86 rSet
.m_aMap
[i
] == 0xFFFF);
87 CPPUNIT_ASSERT_MESSAGE(OUStringToOString(OUString("aUnicode[" + OUString::number(j
) + "] == " +
88 OUString::number(aUnicode
[j
], 16) +
89 ", rSet.m_aMap[" + OUString::number(i
) + "] == " +
90 OUString::number(rSet
.m_aMap
[i
], 16)),
91 RTL_TEXTENCODING_UTF8
).getStr(),
92 aUnicode
[j
] == rSet
.m_aMap
[i
]);
94 if (rSet
.m_aMap
[i
] != 0xFFFF)
98 if (rSet
.m_nEncoding
== RTL_TEXTENCODING_ASCII_US
) {
102 rtl_UnicodeToTextConverter aConverter
103 = rtl_createUnicodeToTextConverter(rSet
.m_nEncoding
);
104 CPPUNIT_ASSERT_MESSAGE(OUStringToOString(OUString("rtl_createTextToUnicodeConverter(" + OUString::createFromAscii(rtl_getMimeCharsetFromTextEncoding(rSet
.m_nEncoding
)) + ") failed"),
105 RTL_TEXTENCODING_UTF8
).getStr(),
107 rtl_UnicodeToTextContext aContext
108 = rtl_createUnicodeToTextContext(aConverter
);
109 CPPUNIT_ASSERT_MESSAGE("rtl_createTextToUnicodeContext failed", aContext
!= NULL
);
113 nSize
= rtl_convertUnicodeToText(
114 aConverter
, aContext
, aUnicode
, nNumber
, aText
, nNumber
,
115 (RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR
116 | RTL_UNICODETOTEXT_FLAGS_INVALID_ERROR
),
117 &nInfo
, &nConverted
);
118 CPPUNIT_ASSERT_EQUAL(nNumber
, nSize
);
119 CPPUNIT_ASSERT_EQUAL((sal_uInt32
)0, nInfo
);
120 CPPUNIT_ASSERT_EQUAL(nNumber
, nConverted
);
121 rtl_destroyUnicodeToTextContext(aConverter
, aContext
);
122 rtl_destroyUnicodeToTextConverter(aConverter
);
126 for (int i
= 0; i
< 256; ++i
) {
127 if (rSet
.m_aMap
[i
] != 0xFFFF
128 && aText
[j
] != static_cast< sal_Char
>(i
))
130 CPPUNIT_ASSERT_MESSAGE(OUStringToOString(OUString("rSet.m_aMap[" + OUString::number(i
) + "] == " +
131 OUString::number(rSet
.m_aMap
[i
], 16)),
132 RTL_TEXTENCODING_UTF8
).getStr(),
133 rSet
.m_aMap
[i
] == 0xFFFF);
134 CPPUNIT_ASSERT_MESSAGE(OUStringToOString(OUString("aText[" + OUString::number(j
) + "] == " +
135 OUString::number(i
, 16)),
136 RTL_TEXTENCODING_UTF8
).getStr(),
137 aText
[j
] == static_cast< sal_Char
>(i
));
139 if (rSet
.m_aMap
[i
] != 0xFFFF)
143 for (int i
= 0; i
< 256; ++i
) {
144 if (rSet
.m_aMap
[i
] == 0xFFFF) {
145 aText
[0] = static_cast< sal_Char
>(i
);
146 rtl_TextToUnicodeConverter aConverter
147 = rtl_createTextToUnicodeConverter(rSet
.m_nEncoding
);
148 CPPUNIT_ASSERT_MESSAGE(OUStringToOString(OUString("rtl_createTextToUnicodeConverter(" + OUString::createFromAscii(rtl_getMimeCharsetFromTextEncoding(rSet
.m_nEncoding
)) + ") failed"),
149 RTL_TEXTENCODING_UTF8
).getStr(),
151 rtl_TextToUnicodeContext aContext
152 = rtl_createTextToUnicodeContext(aConverter
);
153 CPPUNIT_ASSERT_MESSAGE("rtl_createTextToUnicodeContext failed", aContext
!= NULL
);
157 nSize
= rtl_convertTextToUnicode(
158 aConverter
, aContext
, aText
, 1, aUnicode
, 1,
159 (RTL_TEXTTOUNICODE_FLAGS_UNDEFINED_ERROR
160 | RTL_TEXTTOUNICODE_FLAGS_MBUNDEFINED_ERROR
161 | RTL_TEXTTOUNICODE_FLAGS_INVALID_ERROR
),
162 &nInfo
, &nConverted
);
164 sal_uInt32 nExpectedInfo
= (RTL_TEXTTOUNICODE_INFO_ERROR
| RTL_TEXTTOUNICODE_INFO_UNDEFINED
);
166 CPPUNIT_ASSERT_EQUAL((sal_Size
) 0, nSize
);
167 CPPUNIT_ASSERT_EQUAL(nExpectedInfo
, nInfo
);
168 CPPUNIT_ASSERT_EQUAL((sal_Size
) 0, nConverted
);
170 rtl_destroyTextToUnicodeContext(aConverter
, aContext
);
171 rtl_destroyTextToUnicodeConverter(aConverter
);
176 int const TEST_STRING_SIZE
= 1000;
178 struct ComplexCharSetTest
{
179 rtl_TextEncoding m_nEncoding
;
180 char const * m_pText
;
181 sal_Size m_nTextSize
;
182 sal_Unicode m_aUnicode
[TEST_STRING_SIZE
];
183 sal_Size m_nUnicodeSize
;
187 bool m_bGlobalSignature
;
188 sal_uInt32 m_nReverseUndefined
;
191 void doComplexCharSetTest(ComplexCharSetTest
const & rTest
) {
192 if (rTest
.m_bForward
) {
193 sal_Unicode aUnicode
[TEST_STRING_SIZE
];
194 rtl_TextToUnicodeConverter aConverter
195 = rtl_createTextToUnicodeConverter(rTest
.m_nEncoding
);
196 CPPUNIT_ASSERT_MESSAGE(OUStringToOString(OUString("rtl_createTextToUnicodeConverter(" + OUString::createFromAscii(rtl_getMimeCharsetFromTextEncoding(rTest
.m_nEncoding
)) + ") failed"),
197 RTL_TEXTENCODING_UTF8
).getStr(),
199 rtl_TextToUnicodeContext aContext
200 = rtl_createTextToUnicodeContext(aConverter
);
201 CPPUNIT_ASSERT_MESSAGE("rtl_createTextToUnicodeContext failed", aContext
!= NULL
);
205 nSize
= rtl_convertTextToUnicode(
206 aConverter
, aContext
,
207 reinterpret_cast< sal_Char
const * >(rTest
.m_pText
),
208 rTest
.m_nTextSize
, aUnicode
, TEST_STRING_SIZE
,
209 (RTL_TEXTTOUNICODE_FLAGS_UNDEFINED_ERROR
210 | RTL_TEXTTOUNICODE_FLAGS_MBUNDEFINED_ERROR
211 | RTL_TEXTTOUNICODE_FLAGS_INVALID_ERROR
212 | RTL_TEXTTOUNICODE_FLAGS_FLUSH
213 | (rTest
.m_bGlobalSignature
?
214 RTL_TEXTTOUNICODE_FLAGS_GLOBAL_SIGNATURE
: 0)),
215 &nInfo
, &nConverted
);
216 CPPUNIT_ASSERT_EQUAL(rTest
.m_nUnicodeSize
, nSize
);
217 CPPUNIT_ASSERT_EQUAL((sal_uInt32
) 0, nInfo
);
218 CPPUNIT_ASSERT_EQUAL(rTest
.m_nTextSize
, nConverted
);
220 rtl_destroyTextToUnicodeContext(aConverter
, aContext
);
221 rtl_destroyTextToUnicodeConverter(aConverter
);
223 for (sal_Size i
= 0; i
< rTest
.m_nUnicodeSize
; ++i
) {
224 CPPUNIT_ASSERT_MESSAGE(OUStringToOString(OUString("aUnicode[" + OUString::number(i
) + "] == " +
225 OUString::number(aUnicode
[i
], 16) +
226 ", rTest.m_aUnicode[" + OUString::number(i
) + "] == " +
227 OUString::number(rTest
.m_aUnicode
[i
], 16)),
228 RTL_TEXTENCODING_UTF8
).getStr(),
229 aUnicode
[i
] == rTest
.m_aUnicode
[i
]);
232 if (rTest
.m_bForward
) {
233 sal_Unicode aUnicode
[TEST_STRING_SIZE
];
234 rtl_TextToUnicodeConverter aConverter
235 = rtl_createTextToUnicodeConverter(rTest
.m_nEncoding
);
236 CPPUNIT_ASSERT_MESSAGE(OUStringToOString(OUString("rtl_createTextToUnicodeConverter(" + OUString::createFromAscii(rtl_getMimeCharsetFromTextEncoding(rTest
.m_nEncoding
)) + ") failed"),
237 RTL_TEXTENCODING_UTF8
).getStr(),
239 rtl_TextToUnicodeContext aContext
240 = rtl_createTextToUnicodeContext(aConverter
);
241 CPPUNIT_ASSERT_MESSAGE("rtl_createTextToUnicodeContext failed", aContext
!= NULL
);
242 if (aContext
!= reinterpret_cast<rtl_TextToUnicodeContext
>(1)) {
244 sal_Size nOutput
= 0;
245 for (bool bFlush
= true; nInput
< rTest
.m_nTextSize
|| bFlush
;) {
246 sal_Size nSrcBytes
= 1;
248 = (RTL_TEXTTOUNICODE_FLAGS_UNDEFINED_ERROR
249 | RTL_TEXTTOUNICODE_FLAGS_MBUNDEFINED_ERROR
250 | RTL_TEXTTOUNICODE_FLAGS_INVALID_ERROR
251 | (rTest
.m_bGlobalSignature
?
252 RTL_TEXTTOUNICODE_FLAGS_GLOBAL_SIGNATURE
: 0));
253 if (nInput
>= rTest
.m_nTextSize
) {
255 nFlags
|= RTL_TEXTTOUNICODE_FLAGS_FLUSH
;
260 sal_Size nSize
= rtl_convertTextToUnicode(
261 aConverter
, aContext
,
262 reinterpret_cast< sal_Char
const * >(rTest
.m_pText
+ nInput
),
263 nSrcBytes
, aUnicode
+ nOutput
, TEST_STRING_SIZE
- nOutput
,
264 nFlags
, &nInfo
, &nConverted
);
266 nInput
+= nConverted
;
267 CPPUNIT_ASSERT_EQUAL((sal_uInt32
) 0,
268 (nInfo
& ~RTL_TEXTTOUNICODE_INFO_SRCBUFFERTOSMALL
));
270 CPPUNIT_ASSERT_EQUAL(rTest
.m_nUnicodeSize
, nOutput
);
271 CPPUNIT_ASSERT_EQUAL(rTest
.m_nTextSize
, nInput
);
273 for (sal_Size i
= 0; i
< rTest
.m_nUnicodeSize
; ++i
) {
274 CPPUNIT_ASSERT_MESSAGE(OUStringToOString(OUString("aUnicode[" + OUString::number(i
) + "] == " +
275 OUString::number(aUnicode
[i
], 16) +
276 ", rTest.m_aUnicode[" + OUString::number(i
) + "] == " +
277 OUString::number(rTest
.m_aUnicode
[i
], 16)),
278 RTL_TEXTENCODING_UTF8
).getStr(),
279 aUnicode
[i
] == rTest
.m_aUnicode
[i
]);
282 rtl_destroyTextToUnicodeContext(aConverter
, aContext
);
283 rtl_destroyTextToUnicodeConverter(aConverter
);
285 if (rTest
.m_bNoContext
&& rTest
.m_bForward
) {
286 sal_Unicode aUnicode
[TEST_STRING_SIZE
] = { 0, };
288 rtl_TextToUnicodeConverter aConverter
289 = rtl_createTextToUnicodeConverter(rTest
.m_nEncoding
);
290 CPPUNIT_ASSERT_MESSAGE(OUStringToOString(OUString("rtl_createTextToUnicodeConverter(" + OUString::createFromAscii(rtl_getMimeCharsetFromTextEncoding(rTest
.m_nEncoding
)) + ") failed"),
291 RTL_TEXTENCODING_UTF8
).getStr(),
293 for (sal_Size i
= 0;;) {
294 if (i
== rTest
.m_nTextSize
) {
297 sal_Char c1
= rTest
.m_pText
[i
++];
299 sal_uInt32 nInfo
= 0;
301 sal_Size nChars
= rtl_convertTextToUnicode(
302 aConverter
, 0, &c1
, 1, aUC
, 2,
303 (RTL_TEXTTOUNICODE_FLAGS_UNDEFINED_ERROR
304 | RTL_TEXTTOUNICODE_FLAGS_MBUNDEFINED_ERROR
305 | RTL_TEXTTOUNICODE_FLAGS_INVALID_ERROR
306 | (rTest
.m_bGlobalSignature
?
307 RTL_TEXTTOUNICODE_FLAGS_GLOBAL_SIGNATURE
: 0)),
309 if ((nInfo
& RTL_TEXTTOUNICODE_INFO_SRCBUFFERTOSMALL
) != 0) {
310 sal_Char sBuffer
[10];
313 while ((nInfo
& RTL_TEXTTOUNICODE_INFO_SRCBUFFERTOSMALL
) != 0
316 if (i
== rTest
.m_nTextSize
) {
319 c1
= rTest
.m_pText
[i
++];
320 sBuffer
[nLen
++] = c1
;
321 nChars
= rtl_convertTextToUnicode(
322 aConverter
, 0, sBuffer
, nLen
, aUC
, 2,
323 (RTL_TEXTTOUNICODE_FLAGS_UNDEFINED_ERROR
324 | RTL_TEXTTOUNICODE_FLAGS_MBUNDEFINED_ERROR
325 | RTL_TEXTTOUNICODE_FLAGS_INVALID_ERROR
326 | (rTest
.m_bGlobalSignature
?
327 RTL_TEXTTOUNICODE_FLAGS_GLOBAL_SIGNATURE
: 0)),
330 if (nChars
== 1 && nInfo
== 0) {
331 OSL_ASSERT(nCvtBytes
== nLen
);
332 aUnicode
[nSize
++] = aUC
[0];
333 } else if (nChars
== 2 && nInfo
== 0) {
334 OSL_ASSERT(nCvtBytes
== nLen
);
335 aUnicode
[nSize
++] = aUC
[0];
336 aUnicode
[nSize
++] = aUC
[1];
339 (nInfo
& RTL_TEXTTOUNICODE_INFO_SRCBUFFERTOSMALL
) == 0
340 && nChars
== 0 && nInfo
!= 0);
341 aUnicode
[nSize
++] = sBuffer
[0];
344 } else if (nChars
== 1 && nInfo
== 0) {
345 OSL_ASSERT(nCvtBytes
== 1);
346 aUnicode
[nSize
++] = aUC
[0];
347 } else if (nChars
== 2 && nInfo
== 0) {
348 OSL_ASSERT(nCvtBytes
== 1);
349 aUnicode
[nSize
++] = aUC
[0];
350 aUnicode
[nSize
++] = aUC
[1];
352 OSL_ASSERT(nChars
== 0 && nInfo
!= 0);
353 aUnicode
[nSize
++] = c1
;
357 rtl_destroyTextToUnicodeConverter(aConverter
);
358 for (sal_Size i
= 0; i
< rTest
.m_nUnicodeSize
; ++i
) {
359 CPPUNIT_ASSERT_MESSAGE(OUStringToOString(OUString("aUnicode[" + OUString::number(i
) + "] == " +
360 OUString::number(aUnicode
[i
], 16) +
361 ", rTest.m_aUnicode[" + OUString::number(i
) + "] == " +
362 OUString::number(rTest
.m_aUnicode
[i
], 16)),
363 RTL_TEXTENCODING_UTF8
).getStr(),
364 aUnicode
[i
] == rTest
.m_aUnicode
[i
]);
367 if (rTest
.m_bReverse
) {
368 sal_Char aText
[TEST_STRING_SIZE
];
369 rtl_UnicodeToTextConverter aConverter
370 = rtl_createUnicodeToTextConverter(rTest
.m_nEncoding
);
371 CPPUNIT_ASSERT_MESSAGE(OUStringToOString(OUString("rtl_createTextToUnicodeConverter(" + OUString::createFromAscii(rtl_getMimeCharsetFromTextEncoding(rTest
.m_nEncoding
)) + ") failed"),
372 RTL_TEXTENCODING_UTF8
).getStr(),
374 rtl_UnicodeToTextContext aContext
375 = rtl_createUnicodeToTextContext(aConverter
);
376 CPPUNIT_ASSERT_MESSAGE("rtl_createTextToUnicodeContext failed", aContext
!= NULL
);
380 nSize
= rtl_convertUnicodeToText(
381 aConverter
, aContext
, rTest
.m_aUnicode
, rTest
.m_nUnicodeSize
, aText
,
383 (rTest
.m_nReverseUndefined
| RTL_UNICODETOTEXT_FLAGS_INVALID_ERROR
384 | RTL_UNICODETOTEXT_FLAGS_FLUSH
385 | (rTest
.m_bGlobalSignature
?
386 RTL_UNICODETOTEXT_FLAGS_GLOBAL_SIGNATURE
: 0)),
387 &nInfo
, &nConverted
);
388 CPPUNIT_ASSERT_EQUAL(rTest
.m_nTextSize
, nSize
);
391 CPPUNIT_ASSERT_EQUAL(RTL_UNICODETOTEXT_INFO_UNDEFINED
, nInfo
);
392 CPPUNIT_ASSERT_MESSAGE("rTest.m_nReverseUndefined should not be RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR",
393 rTest
.m_nReverseUndefined
!= RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR
);
395 CPPUNIT_ASSERT_EQUAL(rTest
.m_nUnicodeSize
, nConverted
);
396 rtl_destroyUnicodeToTextContext(aConverter
, aContext
);
397 rtl_destroyUnicodeToTextConverter(aConverter
);
398 for (sal_Size i
= 0; i
< rTest
.m_nTextSize
; ++i
) {
399 CPPUNIT_ASSERT_MESSAGE(OUStringToOString(OUString("aText[" + OUString::number(i
) + "] == " +
400 OUString::number(aText
[i
], 16) +
401 ", rTest.m_pText[" + OUString::number(i
) + "] == " +
402 OUString::number(rTest
.m_pText
[i
], 16)),
403 RTL_TEXTENCODING_UTF8
).getStr(),
404 aText
[i
] == rTest
.m_pText
[i
]);
409 void doComplexCharSetCutTest(ComplexCharSetTest
const & rTest
) {
410 if (rTest
.m_bNoContext
) {
411 sal_Unicode aUnicode
[TEST_STRING_SIZE
];
412 rtl_TextToUnicodeConverter aConverter
413 = rtl_createTextToUnicodeConverter(rTest
.m_nEncoding
);
414 CPPUNIT_ASSERT_MESSAGE(OUStringToOString(OUString("rtl_createTextToUnicodeConverter(" + OUString::createFromAscii(rtl_getMimeCharsetFromTextEncoding(rTest
.m_nEncoding
)) + ") failed"),
415 RTL_TEXTENCODING_UTF8
).getStr(),
420 nSize
= rtl_convertTextToUnicode(
421 aConverter
, 0, reinterpret_cast< sal_Char
const * >(rTest
.m_pText
),
422 rTest
.m_nTextSize
, aUnicode
, TEST_STRING_SIZE
,
423 (RTL_TEXTTOUNICODE_FLAGS_UNDEFINED_ERROR
424 | RTL_TEXTTOUNICODE_FLAGS_MBUNDEFINED_ERROR
425 | RTL_TEXTTOUNICODE_FLAGS_INVALID_ERROR
),
426 &nInfo
, &nConverted
);
428 CPPUNIT_ASSERT_EQUAL(rTest
.m_nUnicodeSize
, nSize
);
429 if (nInfo
!= RTL_TEXTTOUNICODE_INFO_SRCBUFFERTOSMALL
)
431 CPPUNIT_ASSERT_EQUAL(RTL_TEXTTOUNICODE_INFO_ERROR
| RTL_TEXTTOUNICODE_INFO_SRCBUFFERTOSMALL
,
434 CPPUNIT_ASSERT_MESSAGE("nConverted should be less than rTest.m_nTextSize", nConverted
< rTest
.m_nTextSize
);
436 rtl_destroyTextToUnicodeConverter(aConverter
);
437 for (sal_Size i
= 0; i
< nSize
; ++i
) {
438 CPPUNIT_ASSERT_MESSAGE(OUStringToOString(OUString("aUnicode[" + OUString::number(i
) + "] == " +
439 OUString::number(aUnicode
[i
], 16) +
440 ", rTest.m_aUnicode[" + OUString::number(i
) + "] == " +
441 OUString::number(rTest
.m_aUnicode
[i
], 16)),
442 RTL_TEXTENCODING_UTF8
).getStr(),
443 aUnicode
[i
] == rTest
.m_aUnicode
[i
]);
448 class Test
: public CppUnit::TestFixture
{
450 void testSingleByte();
454 void testComplexCut();
456 void testSRCBUFFERTOSMALL();
464 CPPUNIT_TEST_SUITE(Test
);
465 CPPUNIT_TEST(testSingleByte
);
466 CPPUNIT_TEST(testComplex
);
467 CPPUNIT_TEST(testComplexCut
);
468 CPPUNIT_TEST(testSRCBUFFERTOSMALL
);
469 CPPUNIT_TEST(testMime
);
470 CPPUNIT_TEST(testWindows
);
471 CPPUNIT_TEST(testInfo
);
472 CPPUNIT_TEST_SUITE_END();
475 void Test::testSingleByte() {
476 static SingleByteCharSet
const data
[]
477 = { { RTL_TEXTENCODING_MS_1250
,
478 { 0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007,
479 0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F,
480 0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017,
481 0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F,
482 0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027,
483 0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F,
484 0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,
485 0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F,
486 0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,
487 0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F,
488 0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,
489 0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F,
490 0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067,
491 0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F,
492 0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,
493 0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F,
494 0x20AC,0xFFFF,0x201A,0xFFFF,0x201E,0x2026,0x2020,0x2021,
495 0xFFFF,0x2030,0x0160,0x2039,0x015A,0x0164,0x017D,0x0179,
496 0xFFFF,0x2018,0x2019,0x201C,0x201D,0x2022,0x2013,0x2014,
497 0xFFFF,0x2122,0x0161,0x203A,0x015B,0x0165,0x017E,0x017A,
498 0x00A0,0x02C7,0x02D8,0x0141,0x00A4,0x0104,0x00A6,0x00A7,
499 0x00A8,0x00A9,0x015E,0x00AB,0x00AC,0x00AD,0x00AE,0x017B,
500 0x00B0,0x00B1,0x02DB,0x0142,0x00B4,0x00B5,0x00B6,0x00B7,
501 0x00B8,0x0105,0x015F,0x00BB,0x013D,0x02DD,0x013E,0x017C,
502 0x0154,0x00C1,0x00C2,0x0102,0x00C4,0x0139,0x0106,0x00C7,
503 0x010C,0x00C9,0x0118,0x00CB,0x011A,0x00CD,0x00CE,0x010E,
504 0x0110,0x0143,0x0147,0x00D3,0x00D4,0x0150,0x00D6,0x00D7,
505 0x0158,0x016E,0x00DA,0x0170,0x00DC,0x00DD,0x0162,0x00DF,
506 0x0155,0x00E1,0x00E2,0x0103,0x00E4,0x013A,0x0107,0x00E7,
507 0x010D,0x00E9,0x0119,0x00EB,0x011B,0x00ED,0x00EE,0x010F,
508 0x0111,0x0144,0x0148,0x00F3,0x00F4,0x0151,0x00F6,0x00F7,
509 0x0159,0x016F,0x00FA,0x0171,0x00FC,0x00FD,0x0163,0x02D9 } },
510 { RTL_TEXTENCODING_MS_1251
,
511 { 0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007,
512 0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F,
513 0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017,
514 0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F,
515 0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027,
516 0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F,
517 0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,
518 0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F,
519 0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,
520 0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F,
521 0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,
522 0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F,
523 0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067,
524 0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F,
525 0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,
526 0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F,
527 0x0402,0x0403,0x201A,0x0453,0x201E,0x2026,0x2020,0x2021,
528 0x20AC,0x2030,0x0409,0x2039,0x040A,0x040C,0x040B,0x040F,
529 0x0452,0x2018,0x2019,0x201C,0x201D,0x2022,0x2013,0x2014,
530 0xFFFF,0x2122,0x0459,0x203A,0x045A,0x045C,0x045B,0x045F,
531 0x00A0,0x040E,0x045E,0x0408,0x00A4,0x0490,0x00A6,0x00A7,
532 0x0401,0x00A9,0x0404,0x00AB,0x00AC,0x00AD,0x00AE,0x0407,
533 0x00B0,0x00B1,0x0406,0x0456,0x0491,0x00B5,0x00B6,0x00B7,
534 0x0451,0x2116,0x0454,0x00BB,0x0458,0x0405,0x0455,0x0457,
535 0x0410,0x0411,0x0412,0x0413,0x0414,0x0415,0x0416,0x0417,
536 0x0418,0x0419,0x041A,0x041B,0x041C,0x041D,0x041E,0x041F,
537 0x0420,0x0421,0x0422,0x0423,0x0424,0x0425,0x0426,0x0427,
538 0x0428,0x0429,0x042A,0x042B,0x042C,0x042D,0x042E,0x042F,
539 0x0430,0x0431,0x0432,0x0433,0x0434,0x0435,0x0436,0x0437,
540 0x0438,0x0439,0x043A,0x043B,0x043C,0x043D,0x043E,0x043F,
541 0x0440,0x0441,0x0442,0x0443,0x0444,0x0445,0x0446,0x0447,
542 0x0448,0x0449,0x044A,0x044B,0x044C,0x044D,0x044E,0x044F } },
543 { RTL_TEXTENCODING_MS_1252
,
544 { 0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007,
545 0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F,
546 0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017,
547 0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F,
548 0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027,
549 0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F,
550 0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,
551 0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F,
552 0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,
553 0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F,
554 0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,
555 0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F,
556 0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067,
557 0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F,
558 0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,
559 0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F,
560 0x20AC,0xFFFF,0x201A,0x0192,0x201E,0x2026,0x2020,0x2021,
561 0x02C6,0x2030,0x0160,0x2039,0x0152,0xFFFF,0x017D,0xFFFF,
562 0xFFFF,0x2018,0x2019,0x201C,0x201D,0x2022,0x2013,0x2014,
563 0x02DC,0x2122,0x0161,0x203A,0x0153,0xFFFF,0x017E,0x0178,
564 0x00A0,0x00A1,0x00A2,0x00A3,0x00A4,0x00A5,0x00A6,0x00A7,
565 0x00A8,0x00A9,0x00AA,0x00AB,0x00AC,0x00AD,0x00AE,0x00AF,
566 0x00B0,0x00B1,0x00B2,0x00B3,0x00B4,0x00B5,0x00B6,0x00B7,
567 0x00B8,0x00B9,0x00BA,0x00BB,0x00BC,0x00BD,0x00BE,0x00BF,
568 0x00C0,0x00C1,0x00C2,0x00C3,0x00C4,0x00C5,0x00C6,0x00C7,
569 0x00C8,0x00C9,0x00CA,0x00CB,0x00CC,0x00CD,0x00CE,0x00CF,
570 0x00D0,0x00D1,0x00D2,0x00D3,0x00D4,0x00D5,0x00D6,0x00D7,
571 0x00D8,0x00D9,0x00DA,0x00DB,0x00DC,0x00DD,0x00DE,0x00DF,
572 0x00E0,0x00E1,0x00E2,0x00E3,0x00E4,0x00E5,0x00E6,0x00E7,
573 0x00E8,0x00E9,0x00EA,0x00EB,0x00EC,0x00ED,0x00EE,0x00EF,
574 0x00F0,0x00F1,0x00F2,0x00F3,0x00F4,0x00F5,0x00F6,0x00F7,
575 0x00F8,0x00F9,0x00FA,0x00FB,0x00FC,0x00FD,0x00FE,0x00FF } },
576 { RTL_TEXTENCODING_MS_1253
,
577 { 0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007,
578 0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F,
579 0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017,
580 0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F,
581 0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027,
582 0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F,
583 0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,
584 0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F,
585 0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,
586 0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F,
587 0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,
588 0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F,
589 0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067,
590 0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F,
591 0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,
592 0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F,
593 0x20AC,0xFFFF,0x201A,0x0192,0x201E,0x2026,0x2020,0x2021,
594 0xFFFF,0x2030,0xFFFF,0x2039,0xFFFF,0xFFFF,0xFFFF,0xFFFF,
595 0xFFFF,0x2018,0x2019,0x201C,0x201D,0x2022,0x2013,0x2014,
596 0xFFFF,0x2122,0xFFFF,0x203A,0xFFFF,0xFFFF,0xFFFF,0xFFFF,
597 0x00A0,0x0385,0x0386,0x00A3,0x00A4,0x00A5,0x00A6,0x00A7,
598 0x00A8,0x00A9,0xFFFF,0x00AB,0x00AC,0x00AD,0x00AE,0x2015,
599 0x00B0,0x00B1,0x00B2,0x00B3,0x0384,0x00B5,0x00B6,0x00B7,
600 0x0388,0x0389,0x038A,0x00BB,0x038C,0x00BD,0x038E,0x038F,
601 0x0390,0x0391,0x0392,0x0393,0x0394,0x0395,0x0396,0x0397,
602 0x0398,0x0399,0x039A,0x039B,0x039C,0x039D,0x039E,0x039F,
603 0x03A0,0x03A1,0xFFFF,0x03A3,0x03A4,0x03A5,0x03A6,0x03A7,
604 0x03A8,0x03A9,0x03AA,0x03AB,0x03AC,0x03AD,0x03AE,0x03AF,
605 0x03B0,0x03B1,0x03B2,0x03B3,0x03B4,0x03B5,0x03B6,0x03B7,
606 0x03B8,0x03B9,0x03BA,0x03BB,0x03BC,0x03BD,0x03BE,0x03BF,
607 0x03C0,0x03C1,0x03C2,0x03C3,0x03C4,0x03C5,0x03C6,0x03C7,
608 0x03C8,0x03C9,0x03CA,0x03CB,0x03CC,0x03CD,0x03CE,0xFFFF } },
609 { RTL_TEXTENCODING_MS_1254
,
610 { 0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007,
611 0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F,
612 0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017,
613 0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F,
614 0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027,
615 0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F,
616 0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,
617 0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F,
618 0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,
619 0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F,
620 0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,
621 0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F,
622 0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067,
623 0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F,
624 0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,
625 0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F,
626 0x20AC,0xFFFF,0x201A,0x0192,0x201E,0x2026,0x2020,0x2021,
627 0x02C6,0x2030,0x0160,0x2039,0x0152,0xFFFF,0xFFFF,0xFFFF,
628 0xFFFF,0x2018,0x2019,0x201C,0x201D,0x2022,0x2013,0x2014,
629 0x02DC,0x2122,0x0161,0x203A,0x0153,0xFFFF,0xFFFF,0x0178,
630 0x00A0,0x00A1,0x00A2,0x00A3,0x00A4,0x00A5,0x00A6,0x00A7,
631 0x00A8,0x00A9,0x00AA,0x00AB,0x00AC,0x00AD,0x00AE,0x00AF,
632 0x00B0,0x00B1,0x00B2,0x00B3,0x00B4,0x00B5,0x00B6,0x00B7,
633 0x00B8,0x00B9,0x00BA,0x00BB,0x00BC,0x00BD,0x00BE,0x00BF,
634 0x00C0,0x00C1,0x00C2,0x00C3,0x00C4,0x00C5,0x00C6,0x00C7,
635 0x00C8,0x00C9,0x00CA,0x00CB,0x00CC,0x00CD,0x00CE,0x00CF,
636 0x011E,0x00D1,0x00D2,0x00D3,0x00D4,0x00D5,0x00D6,0x00D7,
637 0x00D8,0x00D9,0x00DA,0x00DB,0x00DC,0x0130,0x015E,0x00DF,
638 0x00E0,0x00E1,0x00E2,0x00E3,0x00E4,0x00E5,0x00E6,0x00E7,
639 0x00E8,0x00E9,0x00EA,0x00EB,0x00EC,0x00ED,0x00EE,0x00EF,
640 0x011F,0x00F1,0x00F2,0x00F3,0x00F4,0x00F5,0x00F6,0x00F7,
641 0x00F8,0x00F9,0x00FA,0x00FB,0x00FC,0x0131,0x015F,0x00FF } },
642 { RTL_TEXTENCODING_APPLE_ROMAN
,
643 { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
644 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F,
645 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17,
646 0x18, 0x19, 0x1A, 0x1B, 0x1C, 0x1D, 0x1E, 0x1F,
647 0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027,
648 0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F,
649 0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,
650 0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F,
651 0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,
652 0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F,
653 0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,
654 0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F,
655 0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067,
656 0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F,
657 0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,
658 0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E, 0x7F,
659 0x00C4,0x00C5,0x00C7,0x00C9,0x00D1,0x00D6,0x00DC,0x00E1,
660 0x00E0,0x00E2,0x00E4,0x00E3,0x00E5,0x00E7,0x00E9,0x00E8,
661 0x00EA,0x00EB,0x00ED,0x00EC,0x00EE,0x00EF,0x00F1,0x00F3,
662 0x00F2,0x00F4,0x00F6,0x00F5,0x00FA,0x00F9,0x00FB,0x00FC,
663 0x2020,0x00B0,0x00A2,0x00A3,0x00A7,0x2022,0x00B6,0x00DF,
664 0x00AE,0x00A9,0x2122,0x00B4,0x00A8,0x2260,0x00C6,0x00D8,
665 0x221E,0x00B1,0x2264,0x2265,0x00A5,0x00B5,0x2202,0x2211,
666 0x220F,0x03C0,0x222B,0x00AA,0x00BA,0x03A9,0x00E6,0x00F8,
667 0x00BF,0x00A1,0x00AC,0x221A,0x0192,0x2248,0x2206,0x00AB,
668 0x00BB,0x2026,0x00A0,0x00C0,0x00C3,0x00D5,0x0152,0x0153,
669 0x2013,0x2014,0x201C,0x201D,0x2018,0x2019,0x00F7,0x25CA,
670 0x00FF,0x0178,0x2044,0x20AC,0x2039,0x203A,0xFB01,0xFB02,
671 0x2021,0x00B7,0x201A,0x201E,0x2030,0x00C2,0x00CA,0x00C1,
672 0x00CB,0x00C8,0x00CD,0x00CE,0x00CF,0x00CC,0x00D3,0x00D4,
673 0xF8FF,0x00D2,0x00DA,0x00DB,0x00D9,0x0131,0x02C6,0x02DC,
674 0x00AF,0x02D8,0x02D9,0x02DA,0x00B8,0x02DD,0x02DB,0x02C7 } },
675 { RTL_TEXTENCODING_IBM_437
,
676 { 0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007,
677 0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F,
678 0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017,
679 0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F,
680 0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027,
681 0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F,
682 0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,
683 0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F,
684 0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,
685 0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F,
686 0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,
687 0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F,
688 0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067,
689 0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F,
690 0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,
691 0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F,
692 0x00c7,0x00fc,0x00e9,0x00e2,0x00e4,0x00e0,0x00e5,0x00e7,
693 0x00ea,0x00eb,0x00e8,0x00ef,0x00ee,0x00ec,0x00c4,0x00c5,
694 0x00c9,0x00e6,0x00c6,0x00f4,0x00f6,0x00f2,0x00fb,0x00f9,
695 0x00ff,0x00d6,0x00dc,0x00a2,0x00a3,0x00a5,0x20a7,0x0192,
696 0x00e1,0x00ed,0x00f3,0x00fa,0x00f1,0x00d1,0x00aa,0x00ba,
697 0x00bf,0x2310,0x00ac,0x00bd,0x00bc,0x00a1,0x00ab,0x00bb,
698 0x2591,0x2592,0x2593,0x2502,0x2524,0x2561,0x2562,0x2556,
699 0x2555,0x2563,0x2551,0x2557,0x255d,0x255c,0x255b,0x2510,
700 0x2514,0x2534,0x252c,0x251c,0x2500,0x253c,0x255e,0x255f,
701 0x255a,0x2554,0x2569,0x2566,0x2560,0x2550,0x256c,0x2567,
702 0x2568,0x2564,0x2565,0x2559,0x2558,0x2552,0x2553,0x256b,
703 0x256a,0x2518,0x250c,0x2588,0x2584,0x258c,0x2590,0x2580,
704 0x03b1,0x00df,0x0393,0x03c0,0x03a3,0x03c3,0x00b5,0x03c4,
705 0x03a6,0x0398,0x03a9,0x03b4,0x221e,0x03c6,0x03b5,0x2229,
706 0x2261,0x00b1,0x2265,0x2264,0x2320,0x2321,0x00f7,0x2248,
707 0x00b0,0x2219,0x00b7,0x221a,0x207f,0x00b2,0x25a0,0x00a0 } },
709 { RTL_TEXTENCODING_ASCII_US
,
710 { 0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007,
711 0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F,
712 0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017,
713 0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F,
714 0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027,
715 0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F,
716 0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,
717 0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F,
718 0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,
719 0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F,
720 0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,
721 0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F,
722 0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067,
723 0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F,
724 0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,
725 0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F,
726 0x20AC,0xFFFF,0x201A,0x0192,0x201E,0x2026,0x2020,0x2021, // !
727 0x02C6,0x2030,0x0160,0x2039,0x0152,0xFFFF,0x017D,0xFFFF, // !
728 0xFFFF,0x2018,0x2019,0x201C,0x201D,0x2022,0x2013,0x2014, // !
729 0x02DC,0x2122,0x0161,0x203A,0x0153,0xFFFF,0x017E,0x0178, // !
730 0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7,
731 0xA8, 0xA9, 0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0xAF,
732 0xB0, 0xB1, 0xB2, 0xB3, 0xB4, 0xB5, 0xB6, 0xB7,
733 0xB8, 0xB9, 0xBA, 0xBB, 0xBC, 0xBD, 0xBE, 0xBF,
734 0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7,
735 0xC8, 0xC9, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF,
736 0xD0, 0xD1, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6, 0xD7,
737 0xD8, 0xD9, 0xDA, 0xDB, 0xDC, 0xDD, 0xDE, 0xDF,
738 0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7,
739 0xE8, 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF,
740 0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7,
741 0xF8, 0xF9, 0xFA, 0xFB, 0xFC, 0xFD, 0xFE, 0xFF } },
742 { RTL_TEXTENCODING_ISO_8859_1
,
743 { 0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007,
744 0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F,
745 0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017,
746 0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F,
747 0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027,
748 0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F,
749 0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,
750 0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F,
751 0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,
752 0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F,
753 0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,
754 0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F,
755 0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067,
756 0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F,
757 0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,
758 0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F,
759 0x0080,0x0081,0x0082,0x0083,0x0084,0x0085,0x0086,0x0087,
760 0x0088,0x0089,0x008A,0x008B,0x008C,0x008D,0x008E,0x008F,
761 0x0090,0x0091,0x0092,0x0093,0x0094,0x0095,0x0096,0x0097,
762 0x0098,0x0099,0x009A,0x009B,0x009C,0x009D,0x009E,0x009F,
763 0x00A0,0x00A1,0x00A2,0x00A3,0x00A4,0x00A5,0x00A6,0x00A7,
764 0x00A8,0x00A9,0x00AA,0x00AB,0x00AC,0x00AD,0x00AE,0x00AF,
765 0x00B0,0x00B1,0x00B2,0x00B3,0x00B4,0x00B5,0x00B6,0x00B7,
766 0x00B8,0x00B9,0x00BA,0x00BB,0x00BC,0x00BD,0x00BE,0x00BF,
767 0x00C0,0x00C1,0x00C2,0x00C3,0x00C4,0x00C5,0x00C6,0x00C7,
768 0x00C8,0x00C9,0x00CA,0x00CB,0x00CC,0x00CD,0x00CE,0x00CF,
769 0x00D0,0x00D1,0x00D2,0x00D3,0x00D4,0x00D5,0x00D6,0x00D7,
770 0x00D8,0x00D9,0x00DA,0x00DB,0x00DC,0x00DD,0x00DE,0x00DF,
771 0x00E0,0x00E1,0x00E2,0x00E3,0x00E4,0x00E5,0x00E6,0x00E7,
772 0x00E8,0x00E9,0x00EA,0x00EB,0x00EC,0x00ED,0x00EE,0x00EF,
773 0x00F0,0x00F1,0x00F2,0x00F3,0x00F4,0x00F5,0x00F6,0x00F7,
774 0x00F8,0x00F9,0x00FA,0x00FB,0x00FC,0x00FD,0x00FE,0x00FF } },
775 { RTL_TEXTENCODING_ISO_8859_2
,
776 { 0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007,
777 0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F,
778 0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017,
779 0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F,
780 0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027,
781 0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F,
782 0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,
783 0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F,
784 0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,
785 0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F,
786 0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,
787 0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F,
788 0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067,
789 0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F,
790 0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,
791 0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F,
792 0x0080,0x0081,0x0082,0x0083,0x0084,0x0085,0x0086,0x0087,
793 0x0088,0x0089,0x008A,0x008B,0x008C,0x008D,0x008E,0x008F,
794 0x0090,0x0091,0x0092,0x0093,0x0094,0x0095,0x0096,0x0097,
795 0x0098,0x0099,0x009A,0x009B,0x009C,0x009D,0x009E,0x009F,
796 0x00A0,0x0104,0x02D8,0x0141,0x00A4,0x013D,0x015A,0x00A7,
797 0x00A8,0x0160,0x015E,0x0164,0x0179,0x00AD,0x017D,0x017B,
798 0x00B0,0x0105,0x02DB,0x0142,0x00B4,0x013E,0x015B,0x02C7,
799 0x00B8,0x0161,0x015F,0x0165,0x017A,0x02DD,0x017E,0x017C,
800 0x0154,0x00C1,0x00C2,0x0102,0x00C4,0x0139,0x0106,0x00C7,
801 0x010C,0x00C9,0x0118,0x00CB,0x011A,0x00CD,0x00CE,0x010E,
802 0x0110,0x0143,0x0147,0x00D3,0x00D4,0x0150,0x00D6,0x00D7,
803 0x0158,0x016E,0x00DA,0x0170,0x00DC,0x00DD,0x0162,0x00DF,
804 0x0155,0x00E1,0x00E2,0x0103,0x00E4,0x013A,0x0107,0x00E7,
805 0x010D,0x00E9,0x0119,0x00EB,0x011B,0x00ED,0x00EE,0x010F,
806 0x0111,0x0144,0x0148,0x00F3,0x00F4,0x0151,0x00F6,0x00F7,
807 0x0159,0x016F,0x00FA,0x0171,0x00FC,0x00FD,0x0163,0x02D9 } },
808 { RTL_TEXTENCODING_ISO_8859_3
,
809 { 0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007,
810 0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F,
811 0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017,
812 0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F,
813 0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027,
814 0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F,
815 0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,
816 0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F,
817 0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,
818 0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F,
819 0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,
820 0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F,
821 0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067,
822 0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F,
823 0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,
824 0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F,
825 0x0080,0x0081,0x0082,0x0083,0x0084,0x0085,0x0086,0x0087,
826 0x0088,0x0089,0x008A,0x008B,0x008C,0x008D,0x008E,0x008F,
827 0x0090,0x0091,0x0092,0x0093,0x0094,0x0095,0x0096,0x0097,
828 0x0098,0x0099,0x009A,0x009B,0x009C,0x009D,0x009E,0x009F,
829 0x00A0,0x0126,0x02D8,0x00A3,0x00A4,0xFFFF,0x0124,0x00A7,
830 0x00A8,0x0130,0x015E,0x011E,0x0134,0x00AD,0xFFFF,0x017B,
831 0x00B0,0x0127,0x00B2,0x00B3,0x00B4,0x00B5,0x0125,0x00B7,
832 0x00B8,0x0131,0x015F,0x011F,0x0135,0x00BD,0xFFFF,0x017C,
833 0x00C0,0x00C1,0x00C2,0xFFFF,0x00C4,0x010A,0x0108,0x00C7,
834 0x00C8,0x00C9,0x00CA,0x00CB,0x00CC,0x00CD,0x00CE,0x00CF,
835 0xFFFF,0x00D1,0x00D2,0x00D3,0x00D4,0x0120,0x00D6,0x00D7,
836 0x011C,0x00D9,0x00DA,0x00DB,0x00DC,0x016C,0x015C,0x00DF,
837 0x00E0,0x00E1,0x00E2,0xFFFF,0x00E4,0x010B,0x0109,0x00E7,
838 0x00E8,0x00E9,0x00EA,0x00EB,0x00EC,0x00ED,0x00EE,0x00EF,
839 0xFFFF,0x00F1,0x00F2,0x00F3,0x00F4,0x0121,0x00F6,0x00F7,
840 0x011D,0x00F9,0x00FA,0x00FB,0x00FC,0x016D,0x015D,0x02D9 } },
842 { RTL_TEXTENCODING_ISO_8859_6
,
843 { 0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007,
844 0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F,
845 0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017,
846 0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F,
847 0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027,
848 0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F,
849 0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,
850 0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F,
851 0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,
852 0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F,
853 0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,
854 0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F,
855 0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067,
856 0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F,
857 0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,
858 0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F,
859 0x0080,0x0081,0x0082,0x0083,0x0084,0x0085,0x0086,0x0087,
860 0x0088,0x0089,0x008A,0x008B,0x008C,0x008D,0x008E,0x008F,
861 0x0090,0x0091,0x0092,0x0093,0x0094,0x0095,0x0096,0x0097,
862 0x0098,0x0099,0x009A,0x009B,0x009C,0x009D,0x009E,0x009F,
863 0x00A0,0xFFFF,0xFFFF,0xFFFF,0x00A4,0xFFFF,0xFFFF,0xFFFF,
864 0xFFFF,0xFFFF,0xFFFF,0xFFFF,0x060C,0x00AD,0xFFFF,0xFFFF,
865 0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,
866 0xFFFF,0xFFFF,0xFFFF,0x061B,0xFFFF,0xFFFF,0xFFFF,0x061F,
867 0xFFFF,0x0621,0x0622,0x0623,0x0624,0x0625,0x0626,0x0627,
868 0x0628,0x0629,0x062A,0x062B,0x062C,0x062D,0x062E,0x062F,
869 0x0630,0x0631,0x0632,0x0633,0x0634,0x0635,0x0636,0x0637,
870 0x0638,0x0639,0x063A,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,
871 0x0640,0x0641,0x0642,0x0643,0x0644,0x0645,0x0646,0x0647,
872 0x0648,0x0649,0x064A,0x064B,0x064C,0x064D,0x064E,0x064F,
873 0x0650,0x0651,0x0652,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,
874 0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF } },
876 { RTL_TEXTENCODING_ISO_8859_8
,
877 { 0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007,
878 0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F,
879 0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017,
880 0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F,
881 0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027,
882 0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F,
883 0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,
884 0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F,
885 0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,
886 0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F,
887 0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,
888 0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F,
889 0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067,
890 0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F,
891 0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,
892 0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F,
893 0x0080,0x0081,0x0082,0x0083,0x0084,0x0085,0x0086,0x0087,
894 0x0088,0x0089,0x008A,0x008B,0x008C,0x008D,0x008E,0x008F,
895 0x0090,0x0091,0x0092,0x0093,0x0094,0x0095,0x0096,0x0097,
896 0x0098,0x0099,0x009A,0x009B,0x009C,0x009D,0x009E,0x009F,
897 0x00A0,0xFFFF,0x00A2,0x00A3,0x00A4,0x00A5,0x00A6,0x00A7,
898 0x00A8,0x00A9,0x00D7,0x00AB,0x00AC,0x00AD,0x00AE,0x00AF,
899 0x00B0,0x00B1,0x00B2,0x00B3,0x00B4,0x00B5,0x00B6,0x00B7,
900 0x00B8,0x00B9,0x00F7,0x00BB,0x00BC,0x00BD,0x00BE,0xFFFF,
901 0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,
902 0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,
903 0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,
904 0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0x2017,
905 0x05D0,0x05D1,0x05D2,0x05D3,0x05D4,0x05D5,0x05D6,0x05D7,
906 0x05D8,0x05D9,0x05DA,0x05DB,0x05DC,0x05DD,0x05DE,0x05DF,
907 0x05E0,0x05E1,0x05E2,0x05E3,0x05E4,0x05E5,0x05E6,0x05E7,
908 0x05E8,0x05E9,0x05EA,0xFFFF,0xFFFF,0x200E,0x200F,0xFFFF } },
910 { RTL_TEXTENCODING_TIS_620
,
911 { 0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007,
912 0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F,
913 0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017,
914 0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F,
915 0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027,
916 0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F,
917 0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,
918 0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F,
919 0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,
920 0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F,
921 0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,
922 0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F,
923 0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067,
924 0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F,
925 0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,
926 0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F,
927 0x0080,0x0081,0x0082,0x0083,0x0084,0x0085,0x0086,0x0087,
928 0x0088,0x0089,0x008A,0x008B,0x008C,0x008D,0x008E,0x008F,
929 0x0090,0x0091,0x0092,0x0093,0x0094,0x0095,0x0096,0x0097,
930 0x0098,0x0099,0x009A,0x009B,0x009C,0x009D,0x009E,0x009F,
931 0x00A0,0x0E01,0x0E02,0x0E03,0x0E04,0x0E05,0x0E06,0x0E07, // !
932 0x0E08,0x0E09,0x0E0A,0x0E0B,0x0E0C,0x0E0D,0x0E0E,0x0E0F,
933 0x0E10,0x0E11,0x0E12,0x0E13,0x0E14,0x0E15,0x0E16,0x0E17,
934 0x0E18,0x0E19,0x0E1A,0x0E1B,0x0E1C,0x0E1D,0x0E1E,0x0E1F,
935 0x0E20,0x0E21,0x0E22,0x0E23,0x0E24,0x0E25,0x0E26,0x0E27,
936 0x0E28,0x0E29,0x0E2A,0x0E2B,0x0E2C,0x0E2D,0x0E2E,0x0E2F,
937 0x0E30,0x0E31,0x0E32,0x0E33,0x0E34,0x0E35,0x0E36,0x0E37,
938 0x0E38,0x0E39,0x0E3A,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0x0E3F,
939 0x0E40,0x0E41,0x0E42,0x0E43,0x0E44,0x0E45,0x0E46,0x0E47,
940 0x0E48,0x0E49,0x0E4A,0x0E4B,0x0E4C,0x0E4D,0x0E4E,0x0E4F,
941 0x0E50,0x0E51,0x0E52,0x0E53,0x0E54,0x0E55,0x0E56,0x0E57,
942 0x0E58,0x0E59,0x0E5A,0x0E5B,0xFFFF,0xFFFF,0xFFFF,0xFFFF } },
943 { RTL_TEXTENCODING_MS_874
,
944 { 0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007,
945 0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F,
946 0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017,
947 0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F,
948 0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027,
949 0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F,
950 0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,
951 0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F,
952 0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,
953 0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F,
954 0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,
955 0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F,
956 0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067,
957 0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F,
958 0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,
959 0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F,
960 0x20AC,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0x2026,0xFFFF,0xFFFF,
961 0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,
962 0xFFFF,0x2018,0x2019,0x201C,0x201D,0x2022,0x2013,0x2014,
963 0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,
964 0x00A0,0x0E01,0x0E02,0x0E03,0x0E04,0x0E05,0x0E06,0x0E07,
965 0x0E08,0x0E09,0x0E0A,0x0E0B,0x0E0C,0x0E0D,0x0E0E,0x0E0F,
966 0x0E10,0x0E11,0x0E12,0x0E13,0x0E14,0x0E15,0x0E16,0x0E17,
967 0x0E18,0x0E19,0x0E1A,0x0E1B,0x0E1C,0x0E1D,0x0E1E,0x0E1F,
968 0x0E20,0x0E21,0x0E22,0x0E23,0x0E24,0x0E25,0x0E26,0x0E27,
969 0x0E28,0x0E29,0x0E2A,0x0E2B,0x0E2C,0x0E2D,0x0E2E,0x0E2F,
970 0x0E30,0x0E31,0x0E32,0x0E33,0x0E34,0x0E35,0x0E36,0x0E37,
971 0x0E38,0x0E39,0x0E3A,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0x0E3F,
972 0x0E40,0x0E41,0x0E42,0x0E43,0x0E44,0x0E45,0x0E46,0x0E47,
973 0x0E48,0x0E49,0x0E4A,0x0E4B,0x0E4C,0x0E4D,0x0E4E,0x0E4F,
974 0x0E50,0x0E51,0x0E52,0x0E53,0x0E54,0x0E55,0x0E56,0x0E57,
975 0x0E58,0x0E59,0x0E5A,0x0E5B,0xFFFF,0xFFFF,0xFFFF,0xFFFF } },
976 { RTL_TEXTENCODING_MS_1255
,
977 { 0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007,
978 0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F,
979 0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017,
980 0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F,
981 0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027,
982 0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F,
983 0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,
984 0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F,
985 0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,
986 0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F,
987 0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,
988 0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F,
989 0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067,
990 0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F,
991 0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,
992 0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F,
993 0x20AC,0xFFFF,0x201A,0x0192,0x201E,0x2026,0x2020,0x2021,
994 0x02C6,0x2030,0xFFFF,0x2039,0xFFFF,0xFFFF,0xFFFF,0xFFFF,
995 0xFFFF,0x2018,0x2019,0x201C,0x201D,0x2022,0x2013,0x2014,
996 0x02DC,0x2122,0xFFFF,0x203A,0xFFFF,0xFFFF,0xFFFF,0xFFFF,
997 0x00A0,0x00A1,0x00A2,0x00A3,0x20AA,0x00A5,0x00A6,0x00A7,
998 0x00A8,0x00A9,0x00D7,0x00AB,0x00AC,0x00AD,0x00AE,0x00AF,
999 0x00B0,0x00B1,0x00B2,0x00B3,0x00B4,0x00B5,0x00B6,0x00B7,
1000 0x00B8,0x00B9,0x00F7,0x00BB,0x00BC,0x00BD,0x00BE,0x00BF,
1001 0x05B0,0x05B1,0x05B2,0x05B3,0x05B4,0x05B5,0x05B6,0x05B7,
1002 0x05B8,0x05B9,0xFFFF,0x05BB,0x05BC,0x05BD,0x05BE,0x05BF,
1003 0x05C0,0x05C1,0x05C2,0x05C3,0x05F0,0x05F1,0x05F2,0x05F3,
1004 0x05F4,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,
1005 0x05D0,0x05D1,0x05D2,0x05D3,0x05D4,0x05D5,0x05D6,0x05D7,
1006 0x05D8,0x05D9,0x05DA,0x05DB,0x05DC,0x05DD,0x05DE,0x05DF,
1007 0x05E0,0x05E1,0x05E2,0x05E3,0x05E4,0x05E5,0x05E6,0x05E7,
1008 0x05E8,0x05E9,0x05EA,0xFFFF,0xFFFF,0x200E,0x200F,0xFFFF } },
1009 { RTL_TEXTENCODING_MS_1256
,
1010 { 0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007,
1011 0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F,
1012 0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017,
1013 0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F,
1014 0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027,
1015 0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F,
1016 0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,
1017 0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F,
1018 0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,
1019 0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F,
1020 0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,
1021 0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F,
1022 0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067,
1023 0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F,
1024 0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,
1025 0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F,
1026 0x20AC,0x067E,0x201A,0x0192,0x201E,0x2026,0x2020,0x2021,
1027 0x02C6,0x2030,0x0679,0x2039,0x0152,0x0686,0x0698,0x0688,
1028 0x06AF,0x2018,0x2019,0x201C,0x201D,0x2022,0x2013,0x2014,
1029 0x06A9,0x2122,0x0691,0x203A,0x0153,0x200C,0x200D,0x06BA,
1030 0x00A0,0x060C,0x00A2,0x00A3,0x00A4,0x00A5,0x00A6,0x00A7,
1031 0x00A8,0x00A9,0x06BE,0x00AB,0x00AC,0x00AD,0x00AE,0x00AF,
1032 0x00B0,0x00B1,0x00B2,0x00B3,0x00B4,0x00B5,0x00B6,0x00B7,
1033 0x00B8,0x00B9,0x061B,0x00BB,0x00BC,0x00BD,0x00BE,0x061F,
1034 0x06C1,0x0621,0x0622,0x0623,0x0624,0x0625,0x0626,0x0627,
1035 0x0628,0x0629,0x062A,0x062B,0x062C,0x062D,0x062E,0x062F,
1036 0x0630,0x0631,0x0632,0x0633,0x0634,0x0635,0x0636,0x00D7,
1037 0x0637,0x0638,0x0639,0x063A,0x0640,0x0641,0x0642,0x0643,
1038 0x00E0,0x0644,0x00E2,0x0645,0x0646,0x0647,0x0648,0x00E7,
1039 0x00E8,0x00E9,0x00EA,0x00EB,0x0649,0x064A,0x00EE,0x00EF,
1040 0x064B,0x064C,0x064D,0x064E,0x00F4,0x064F,0x0650,0x00F7,
1041 0x0651,0x00F9,0x0652,0x00FB,0x00FC,0x200E,0x200F,0x06D2 } },
1042 { RTL_TEXTENCODING_MS_1257
,
1043 { 0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007,
1044 0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F,
1045 0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017,
1046 0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F,
1047 0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027,
1048 0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F,
1049 0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,
1050 0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F,
1051 0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,
1052 0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F,
1053 0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,
1054 0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F,
1055 0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067,
1056 0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F,
1057 0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,
1058 0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F,
1059 0x20AC,0xFFFF,0x201A,0xFFFF,0x201E,0x2026,0x2020,0x2021,
1060 0xFFFF,0x2030,0xFFFF,0x2039,0xFFFF,0x00A8,0x02C7,0x00B8,
1061 0xFFFF,0x2018,0x2019,0x201C,0x201D,0x2022,0x2013,0x2014,
1062 0xFFFF,0x2122,0xFFFF,0x203A,0xFFFF,0x00AF,0x02DB,0xFFFF,
1063 0x00A0,0xFFFF,0x00A2,0x00A3,0x00A4,0xFFFF,0x00A6,0x00A7,
1064 0x00D8,0x00A9,0x0156,0x00AB,0x00AC,0x00AD,0x00AE,0x00C6,
1065 0x00B0,0x00B1,0x00B2,0x00B3,0x00B4,0x00B5,0x00B6,0x00B7,
1066 0x00F8,0x00B9,0x0157,0x00BB,0x00BC,0x00BD,0x00BE,0x00E6,
1067 0x0104,0x012E,0x0100,0x0106,0x00C4,0x00C5,0x0118,0x0112,
1068 0x010C,0x00C9,0x0179,0x0116,0x0122,0x0136,0x012A,0x013B,
1069 0x0160,0x0143,0x0145,0x00D3,0x014C,0x00D5,0x00D6,0x00D7,
1070 0x0172,0x0141,0x015A,0x016A,0x00DC,0x017B,0x017D,0x00DF,
1071 0x0105,0x012F,0x0101,0x0107,0x00E4,0x00E5,0x0119,0x0113,
1072 0x010D,0x00E9,0x017A,0x0117,0x0123,0x0137,0x012B,0x013C,
1073 0x0161,0x0144,0x0146,0x00F3,0x014D,0x00F5,0x00F6,0x00F7,
1074 0x0173,0x0142,0x015B,0x016B,0x00FC,0x017C,0x017E,0x02D9 } },
1075 { RTL_TEXTENCODING_MS_1258
,
1076 { 0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007,
1077 0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F,
1078 0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017,
1079 0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F,
1080 0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027,
1081 0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F,
1082 0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,
1083 0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F,
1084 0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,
1085 0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F,
1086 0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,
1087 0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F,
1088 0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067,
1089 0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F,
1090 0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,
1091 0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F,
1092 0x20AC,0xFFFF,0x201A,0x0192,0x201E,0x2026,0x2020,0x2021,
1093 0x02C6,0x2030,0xFFFF,0x2039,0x0152,0xFFFF,0xFFFF,0xFFFF,
1094 0xFFFF,0x2018,0x2019,0x201C,0x201D,0x2022,0x2013,0x2014,
1095 0x02DC,0x2122,0xFFFF,0x203A,0x0153,0xFFFF,0xFFFF,0x0178,
1096 0x00A0,0x00A1,0x00A2,0x00A3,0x00A4,0x00A5,0x00A6,0x00A7,
1097 0x00A8,0x00A9,0x00AA,0x00AB,0x00AC,0x00AD,0x00AE,0x00AF,
1098 0x00B0,0x00B1,0x00B2,0x00B3,0x00B4,0x00B5,0x00B6,0x00B7,
1099 0x00B8,0x00B9,0x00BA,0x00BB,0x00BC,0x00BD,0x00BE,0x00BF,
1100 0x00C0,0x00C1,0x00C2,0x0102,0x00C4,0x00C5,0x00C6,0x00C7,
1101 0x00C8,0x00C9,0x00CA,0x00CB,0x0300,0x00CD,0x00CE,0x00CF,
1102 0x0110,0x00D1,0x0309,0x00D3,0x00D4,0x01A0,0x00D6,0x00D7,
1103 0x00D8,0x00D9,0x00DA,0x00DB,0x00DC,0x01AF,0x0303,0x00DF,
1104 0x00E0,0x00E1,0x00E2,0x0103,0x00E4,0x00E5,0x00E6,0x00E7,
1105 0x00E8,0x00E9,0x00EA,0x00EB,0x0301,0x00ED,0x00EE,0x00EF,
1106 0x0111,0x00F1,0x0323,0x00F3,0x00F4,0x01A1,0x00F6,0x00F7,
1107 0x00F8,0x00F9,0x00FA,0x00FB,0x00FC,0x01B0,0x20AB,0x00FF } },
1108 { RTL_TEXTENCODING_KOI8_U
, // RFC 2319
1109 { 0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007,
1110 0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F,
1111 0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017,
1112 0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F,
1113 0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027,
1114 0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F,
1115 0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,
1116 0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F,
1117 0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,
1118 0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F,
1119 0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,
1120 0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F,
1121 0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067,
1122 0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F,
1123 0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,
1124 0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F,
1125 0x2500,0x2502,0x250C,0x2510,0x2514,0x2518,0x251C,0x2524,
1126 0x252C,0x2534,0x253C,0x2580,0x2584,0x2588,0x258C,0x2590,
1127 0x2591,0x2592,0x2593,0x2320,0x25A0,0x2219,0x221A,0x2248,
1128 0x2264,0x2265,0x00A0,0x2321,0x00B0,0x00B2,0x00B7,0x00F7,
1129 0x2550,0x2551,0x2552,0x0451,0x0454,0x2554,0x0456,0x0457,
1130 0x2557,0x2558,0x2559,0x255A,0x255B,0x0491,0x255D,0x255E,
1131 0x255F,0x2560,0x2561,0x0401,0x0404,0x2563,0x0406,0x0407,
1132 0x2566,0x2567,0x2568,0x2569,0x256A,0x0490,0x256C,0x00A9,
1133 0x044E,0x0430,0x0431,0x0446,0x0434,0x0435,0x0444,0x0433,
1134 0x0445,0x0438,0x0439,0x043A,0x043B,0x043C,0x043D,0x043E,
1135 0x043F,0x044F,0x0440,0x0441,0x0442,0x0443,0x0436,0x0432,
1136 0x044C,0x044B,0x0437,0x0448,0x044D,0x0449,0x0447,0x044A,
1137 0x042E,0x0410,0x0411,0x0426,0x0414,0x0415,0x0424,0x0413,
1138 0x0425,0x0418,0x0419,0x041A,0x041B,0x041C,0x041D,0x041E,
1139 0x041F,0x042F,0x0420,0x0421,0x0422,0x0423,0x0416,0x0412,
1140 0x042C,0x042B,0x0417,0x0428,0x042D,0x0429,0x0427,0x042A } },
1141 { RTL_TEXTENCODING_ADOBE_STANDARD
,
1142 { 0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,
1143 0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,
1144 0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,
1145 0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,
1146 0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x2019,
1147 0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F,
1148 0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,
1149 0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F,
1150 0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,
1151 0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F,
1152 0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,
1153 0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F,
1154 0x2018,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067,
1155 0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F,
1156 0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,
1157 0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0xFFFF,
1158 0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,
1159 0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,
1160 0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,
1161 0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,
1162 0xFFFF,0x00A1,0x00A2,0x00A3,0x2215,0x00A5,0x0192,0x00A7,
1163 0x00A4,0x0027,0x201C,0x00AB,0x2039,0x203A,0xFB01,0xFB02,
1164 0xFFFF,0x2013,0x2020,0x2021,0x00B7,0xFFFF,0x00B6,0x2022,
1165 0x201A,0x201E,0x201D,0x00BB,0x2026,0x2030,0xFFFF,0x00BF,
1166 0xFFFF,0x0060,0x00B4,0x02C6,0x02DC,0x00AF,0x02D8,0x02D9,
1167 0x00A8,0xFFFF,0x02DA,0x00B8,0xFFFF,0x02DD,0x02DB,0x02C7,
1168 0x2014,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,
1169 0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,
1170 0xFFFF,0x00C6,0xFFFF,0x00AA,0xFFFF,0xFFFF,0xFFFF,0xFFFF,
1171 0x0141,0x00D8,0x0152,0x00BA,0xFFFF,0xFFFF,0xFFFF,0xFFFF,
1172 0xFFFF,0x00E6,0xFFFF,0xFFFF,0xFFFF,0x0131,0xFFFF,0xFFFF,
1173 0x0142,0x00F8,0x0153,0x00DF,0xFFFF,0xFFFF,0xFFFF,0xFFFF } },
1174 { RTL_TEXTENCODING_ADOBE_SYMBOL
,
1175 { 0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,
1176 0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,
1177 0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,
1178 0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,
1179 0x0020,0x0021,0x2200,0x0023,0x2203,0x0025,0x0026,0x220B,
1180 0x0028,0x0029,0x2217,0x002B,0x002C,0x2212,0x002E,0x002F,
1181 0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,
1182 0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F,
1183 0x2245,0x0391,0x0392,0x03A7,0x0394,0x0395,0x03A6,0x0393,
1184 0x0397,0x0399,0x03D1,0x039A,0x039B,0x039C,0x039D,0x039F,
1185 0x03A0,0x0398,0x03A1,0x03A3,0x03A4,0x03A5,0x03C2,0x03A9,
1186 0x039E,0x03A8,0x0396,0x005B,0x2234,0x005D,0x22A5,0x005F,
1187 0xF8E5,0x03B1,0x03B2,0x03C7,0x03B4,0x03B5,0x03C6,0x03B3,
1188 0x03B7,0x03B9,0x03D5,0x03BA,0x03BB,0x03BC,0x03BD,0x03BF,
1189 0x03C0,0x03B8,0x03C1,0x03C3,0x03C4,0x03C5,0x03D6,0x03C9,
1190 0x03BE,0x03C8,0x03B6,0x007B,0x007C,0x007D,0x223C,0xFFFF,
1191 0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,
1192 0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,
1193 0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,
1194 0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,
1195 0x20AC,0x03D2,0x2032,0x2264,0x2215,0x221E,0x0192,0x2663,
1196 0x2666,0x2665,0x2660,0x2194,0x2190,0x2191,0x2192,0x2193,
1197 0x00B0,0x00B1,0x2033,0x2265,0x00D7,0x221D,0x2202,0x2022,
1198 0x00F7,0x2260,0x2261,0x2248,0x2026,0x23AF,0x23D0,0x21B5,
1199 0x2135,0x2111,0x211C,0x2118,0x2297,0x2295,0x2205,0x2229,
1200 0x222A,0x2283,0x2287,0x2284,0x2282,0x2286,0x2208,0x2209,
1201 0x2220,0x2207,0xF6DA,0xF6D9,0xF6DB,0x220F,0x221A,0x22C5,
1202 0x00AC,0x2227,0x2228,0x21D4,0x21D0,0x21D1,0x21D2,0x21D3,
1203 0x25CA,0x2329,0xF8E8,0xF8E9,0xF8EA,0x2211,0x239B,0x239C,
1204 0x239D,0x23A1,0x23A2,0x23A3,0x23A7,0x23A8,0x23A9,0x23AA,
1205 0xFFFF,0x232A,0x222B,0x2320,0x23AE,0x2321,0x239E,0x239F,
1206 0x23A0,0x23A4,0x23A5,0x23A6,0x23AB,0x23AC,0x23AD,0xFFFF } },
1207 { RTL_TEXTENCODING_ADOBE_DINGBATS
,
1208 { 0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,
1209 0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,
1210 0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,
1211 0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,
1213 0x0020,0x2701,0x2702,0x2703,0x2704,0x260E,0x2706,0x2707,
1214 0x2708,0x2709,0x261B,0x261E,0x270C,0x270D,0x270E,0x270F,
1215 0x2710,0x2711,0x2712,0x2713,0x2714,0x2715,0x2716,0x2717,
1216 0x2718,0x2719,0x271A,0x271B,0x271C,0x271D,0x271E,0x271F,
1218 0x2720,0x2721,0x2722,0x2723,0x2724,0x2725,0x2726,0x2727,
1219 0x2605,0x2729,0x272A,0x272B,0x272C,0x272D,0x272E,0x272F,
1220 0x2730,0x2731,0x2732,0x2733,0x2734,0x2735,0x2736,0x2737,
1221 0x2738,0x2739,0x273A,0x273B,0x273C,0x273D,0x273E,0x273F,
1223 0x2740,0x2741,0x2742,0x2743,0x2744,0x2745,0x2746,0x2747,
1224 0x2748,0x2749,0x274A,0x274B,0x25CF,0x274D,0x25A0,0x274F,
1225 0x2750,0x2751,0x2752,0x25B2,0x25BC,0x25C6,0x2756,0x25D7,
1226 0x2758,0x2759,0x275A,0x275B,0x275C,0x275D,0x275E,0xFFFF,
1228 0xF8D7,0xF8D8,0xF8D9,0xF8DA,0xF8DB,0xF8DC,0xF8DD,0xF8DE,
1229 0xF8DF,0xF8E0,0xF8E1,0xF8E2,0xF8E3,0xF8E4,0xFFFF,0xFFFF,
1230 0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,
1231 0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,
1233 0xFFFF,0x2761,0x2762,0x2763,0x2764,0x2765,0x2766,0x2767,
1234 0x2663,0x2666,0x2665,0x2660,0x2460,0x2461,0x2462,0x2463,
1235 0x2464,0x2465,0x2466,0x2467,0x2468,0x2469,0x2776,0x2777,
1236 0x2778,0x2779,0x277A,0x277B,0x277C,0x277D,0x277E,0x277F,
1238 0x2780,0x2781,0x2782,0x2783,0x2784,0x2785,0x2786,0x2787,
1239 0x2788,0x2789,0x278A,0x278B,0x278C,0x278D,0x278E,0x278F,
1240 0x2790,0x2791,0x2792,0x2793,0x2794,0x2795,0x2796,0x2797,
1241 0x2798,0x2799,0x279A,0x279B,0x279C,0x279D,0x279E,0x279F,
1243 0x27A0,0x27A1,0x27A2,0x27A3,0x27A4,0x27A5,0x27A6,0x27A7,
1244 0x27A8,0x27A9,0x27AA,0x27AB,0x27AC,0x27AD,0x27AE,0x27AF,
1245 0xFFFF,0x27B1,0x27B2,0x27B3,0x27B4,0x27B5,0x27B6,0x27B7,
1246 0x27B8,0x27B9,0x27BA,0x27BB,0x27BC,0x27BD,0x27BE,0xFFFF } },
1247 { RTL_TEXTENCODING_PT154
,
1248 { 0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007,
1249 0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F,
1250 0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017,
1251 0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F,
1252 0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027,
1253 0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F,
1254 0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,
1255 0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F,
1256 0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,
1257 0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F,
1258 0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,
1259 0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F,
1260 0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067,
1261 0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F,
1262 0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,
1263 0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F,
1264 0x0496,0x0492,0x04EE,0x0493,0x201E,0x2026,0x04B6,0x04AE,
1265 0x04B2,0x04AF,0x04A0,0x04E2,0x04A2,0x049A,0x04BA,0x04B8,
1266 0x0497,0x2018,0x2019,0x201C,0x201D,0x2022,0x2013,0x2014,
1267 0x04B3,0x04B7,0x04A1,0x04E3,0x04A3,0x049B,0x04BB,0x04B9,
1268 0x00A0,0x040E,0x045E,0x0408,0x04E8,0x0498,0x04B0,0x00A7,
1269 0x0401,0x00A9,0x04D8,0x00AB,0x00AC,0x04EF,0x00AE,0x049C,
1270 0x00B0,0x04B1,0x0406,0x0456,0x0499,0x04E9,0x00B6,0x00B7,
1271 0x0451,0x2116,0x04D9,0x00BB,0x0458,0x04AA,0x04AB,0x049D,
1272 0x0410,0x0411,0x0412,0x0413,0x0414,0x0415,0x0416,0x0417,
1273 0x0418,0x0419,0x041A,0x041B,0x041C,0x041D,0x041E,0x041F,
1274 0x0420,0x0421,0x0422,0x0423,0x0424,0x0425,0x0426,0x0427,
1275 0x0428,0x0429,0x042A,0x042B,0x042C,0x042D,0x042E,0x042F,
1276 0x0430,0x0431,0x0432,0x0433,0x0434,0x0435,0x0436,0x0437,
1277 0x0438,0x0439,0x043A,0x043B,0x043C,0x043D,0x043E,0x043F,
1278 0x0440,0x0441,0x0442,0x0443,0x0444,0x0445,0x0446,0x0447,
1279 0x0448,0x0449,0x044A,0x044B,0x044C,0x044D,0x044E,0x044F } } };
1280 for (std::size_t i
= 0; i
< SAL_N_ELEMENTS(data
); ++i
) {
1281 testSingleByteCharSet(data
[i
]);
1285 void Test::testComplex() {
1286 static ComplexCharSetTest
const data
[]
1287 = { { RTL_TEXTENCODING_ASCII_US
,
1288 RTL_CONSTASCII_STRINGPARAM("\x01\"3De$~"),
1289 { 0x0001,0x0022,0x0033,0x0044,0x0065,0x0024,0x007E },
1295 RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR
},
1296 #if WITH_LOCALE_ALL || WITH_LOCALE_zh
1297 { RTL_TEXTENCODING_EUC_CN
,
1298 RTL_CONSTASCII_STRINGPARAM("\x01\"3De$~\xA1\xB9\xF0\xC5"),
1299 { 0x0001,0x0022,0x0033,0x0044,0x0065,0x0024,0x007E,
1306 RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR
},
1307 { RTL_TEXTENCODING_EUC_TW
,
1308 RTL_CONSTASCII_STRINGPARAM(
1309 "\x01\"3De$~\xC5\xF0\x8E\xA4\xDC\xD9"),
1310 { 0x0001,0x0022,0x0033,0x0044,0x0065,0x0024,0x007E,
1311 0x4ED9,0xD87E,0xDD68 },
1317 RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR
},
1318 { RTL_TEXTENCODING_GB_18030
,
1319 RTL_CONSTASCII_STRINGPARAM("\x01\"3De$~"),
1320 { 0x0001,0x0022,0x0033,0x0044,0x0065,0x0024,0x007E },
1326 RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR
},
1327 { RTL_TEXTENCODING_GB_18030
,
1328 RTL_CONSTASCII_STRINGPARAM("\x81\x40\xFE\xFE"),
1335 RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR
},
1336 { RTL_TEXTENCODING_GB_18030
,
1337 RTL_CONSTASCII_STRINGPARAM(
1338 "\x81\x30\xB1\x33\x81\x30\xD3\x30\x81\x36\xA5\x31"),
1339 { 0x028A,0x0452,0x200F },
1345 RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR
},
1346 { RTL_TEXTENCODING_GB_18030
,
1347 RTL_CONSTASCII_STRINGPARAM(
1348 "\xFE\x50\xFE\x51\xFE\x52\xFE\x53\xFE\x54\xFE\x55\xFE\x56"
1349 "\xFE\x57\xFE\x58\xFE\x59\xFE\x5A\xFE\x5B\xFE\x5C\xFE\x5D"
1350 "\xFE\x5E\xFE\x5F\xFE\x60\xFE\x61\xFE\x62\xFE\x63\xFE\x64"
1351 "\xFE\x65\xFE\x66\xFE\x67\xFE\x68\xFE\x69\xFE\x6A\xFE\x6B"
1352 "\xFE\x6C\xFE\x6D\xFE\x6E\xFE\x6F\xFE\x70\xFE\x71\xFE\x72"
1353 "\xFE\x73\xFE\x74\xFE\x75\xFE\x76\xFE\x77\xFE\x78\xFE\x79"
1354 "\xFE\x7A\xFE\x7B\xFE\x7C\xFE\x7D\xFE\x7E\xFE\x80\xFE\x81"
1355 "\xFE\x82\xFE\x83\xFE\x84\xFE\x85\xFE\x86\xFE\x87\xFE\x88"
1356 "\xFE\x89\xFE\x8A\xFE\x8B\xFE\x8C\xFE\x8D\xFE\x8E\xFE\x8F"
1357 "\xFE\x90\xFE\x91\xFE\x92\xFE\x93\xFE\x94\xFE\x95\xFE\x96"
1358 "\xFE\x97\xFE\x98\xFE\x99\xFE\x9A\xFE\x9B\xFE\x9C\xFE\x9D"
1359 "\xFE\x9E\xFE\x9F\xFE\xA0"),
1360 { 0x2E81,0xE816,0xE817,0xE818,0x2E84,0x3473,0x3447,0x2E88,
1361 0x2E8B,0xE81E,0x359E,0x361A,0x360E,0x2E8C,0x2E97,0x396E,
1362 0x3918,0xE826,0x39CF,0x39DF,0x3A73,0x39D0,0xE82B,0xE82C,
1363 0x3B4E,0x3C6E,0x3CE0,0x2EA7,0xE831,0xE832,0x2EAA,0x4056,
1364 0x415F,0x2EAE,0x4337,0x2EB3,0x2EB6,0x2EB7,0xE83B,0x43B1,
1365 0x43AC,0x2EBB,0x43DD,0x44D6,0x4661,0x464C,0xE843,0x4723,
1366 0x4729,0x477C,0x478D,0x2ECA,0x4947,0x497A,0x497D,0x4982,
1367 0x4983,0x4985,0x4986,0x499F,0x499B,0x49B7,0x49B6,0xE854,
1368 0xE855,0x4CA3,0x4C9F,0x4CA0,0x4CA1,0x4C77,0x4CA2,0x4D13,
1369 0x4D14,0x4D15,0x4D16,0x4D17,0x4D18,0x4D19,0x4DAE,0xE864 },
1375 RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR
},
1377 #if WITH_LOCALE_ALL || WITH_LOCALE_ja
1378 { RTL_TEXTENCODING_ISO_2022_JP
,
1379 RTL_CONSTASCII_STRINGPARAM("\x01\"3De$\\~"),
1380 { 0x0001,0x0022,0x0033,0x0044,0x0065,0x0024,0x005C,0x007E },
1386 RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR
},
1387 { RTL_TEXTENCODING_ISO_2022_JP
,
1388 RTL_CONSTASCII_STRINGPARAM("\x1B(B\x01\"3De$\\~"),
1389 { 0x0001,0x0022,0x0033,0x0044,0x0065,0x0024,0x005C,0x007E },
1395 RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR
},
1396 { RTL_TEXTENCODING_ISO_2022_JP
,
1397 RTL_CONSTASCII_STRINGPARAM("\x1B(J\x01\"3De$\\~"),
1398 { 0x0001,0x0022,0x0033,0x0044,0x0065,0x0024,0x00A5,0x00AF },
1404 RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR
},
1405 { RTL_TEXTENCODING_ISO_2022_JP
,
1406 RTL_CONSTASCII_STRINGPARAM("\x1B$B\x26\x21\x27\x71\x1B(B"),
1413 RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR
},
1415 #if WITH_LOCALE_ALL || WITH_LOCALE_ko
1416 { RTL_TEXTENCODING_ISO_2022_KR
,
1417 RTL_CONSTASCII_STRINGPARAM("\x1B$)C\x01\"3De$\\~"),
1418 { 0x0001,0x0022,0x0033,0x0044,0x0065,0x0024,0x005C,0x007E },
1424 RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR
},
1425 { RTL_TEXTENCODING_ISO_2022_KR
,
1426 RTL_CONSTASCII_STRINGPARAM(
1427 "\x1B$)C\x0E\x25\x21\x0F\x0D\x0Ax\x0E\x48\x7E\x0F"),
1428 { 0x2170,0x000D,0x000A,0x0078,0xD79D },
1434 RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR
},
1436 #if WITH_LOCALE_ALL || WITH_LOCALE_zh
1437 { RTL_TEXTENCODING_ISO_2022_CN
,
1438 RTL_CONSTASCII_STRINGPARAM(
1439 "\x01\"3De$\\~\x1B$)G\x0E\x45\x70\x1B$*H\x1BN\x22\x22"
1440 "\x45\x70\x0F\x1B$)A\x0E\x26\x21\x0F"),
1441 { 0x0001,0x0022,0x0033,0x0044,0x0065,0x0024,0x005C,0x007E,
1442 0x4ED9,0x531F,0x4ED9,0x0391 },
1448 RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR
},
1449 { RTL_TEXTENCODING_ISO_2022_CN
,
1450 RTL_CONSTASCII_STRINGPARAM(
1451 "\x01\"3De$\\~\x1B$)A\x0E\x26\x21\x1B$*H\x1BN\x22\x22"
1452 "\x26\x21\x0F\x0D\x0A\x1B$)A\x0E\x26\x21\x0F"),
1453 { 0x0001,0x0022,0x0033,0x0044,0x0065,0x0024,0x005C,0x007E,
1454 0x0391,0x531F,0x0391,0x000D,0x000A,0x0391 },
1460 RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR
},
1462 // The following does not work as long as Big5-HKSCS maps to
1463 // Unicode PUA instead of Plane 2. Use the next two tests
1465 // { RTL_TEXTENCODING_BIG5_HKSCS,
1466 // RTL_CONSTASCII_STRINGPARAM(
1467 // "\x01\"3De$~\x88\x56\xF9\xFE\xFA\x5E\xA1\x40\xF9\xD5"),
1468 // { 0x0001,0x0022,0x0033,0x0044,0x0065,0x0024,0x007E,0x0100,
1469 // 0xFFED,0xD849,0xDD13,0x3000,0x9F98 },
1475 // RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
1476 #if WITH_LOCALE_ALL || WITH_LOCALE_zh
1477 { RTL_TEXTENCODING_BIG5_HKSCS
,
1478 RTL_CONSTASCII_STRINGPARAM(
1479 "\x01\"3De$~\x88\x56\xF9\xFE\xFA\x5E\xA1\x40\xF9\xD5"),
1480 { 0x0001,0x0022,0x0033,0x0044,0x0065,0x0024,0x007E,0x0100,
1481 0xFFED,0xE01E,0x3000,0x9F98 },
1487 RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR
},
1488 { RTL_TEXTENCODING_BIG5_HKSCS
,
1489 RTL_CONSTASCII_STRINGPARAM(
1490 "\x01\"3De$~\x88\x56\xF9\xFE\xFA\x5E\xA1\x40\xF9\xD5"),
1491 { 0x0001,0x0022,0x0033,0x0044,0x0065,0x0024,0x007E,0x0100,
1492 0xFFED,0xD849,0xDD13,0x3000,0x9F98 },
1498 RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR
},
1499 { RTL_TEXTENCODING_BIG5_HKSCS
,
1500 RTL_CONSTASCII_STRINGPARAM(
1501 "\xC6\xA1\xC6\xCF\xC6\xD3\xC6\xD5\xC6\xD7\xC6\xDE\xC6\xDF"
1502 "\xC6\xFE\xC7\x40\xC7\x7E\xC7\xA1\xC7\xFE"),
1503 { 0x2460,0xF6E0,0xF6E4,0xF6E6,0xF6E8,0xF6EF,0xF6F0,0x3058,
1504 0x3059,0x30A4,0x30A5,0x041A },
1510 RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR
},
1511 { RTL_TEXTENCODING_BIG5_HKSCS
,
1512 RTL_CONSTASCII_STRINGPARAM("\x81\x40\x84\xFE"),
1519 RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR
},
1520 { RTL_TEXTENCODING_BIG5_HKSCS
,
1521 RTL_CONSTASCII_STRINGPARAM(
1522 "\x81\x40\x8D\xFE\x8E\x40\xA0\xFE\xC6\xA1\xC8\xFE\xFA\x40"
1524 { 0xEEB8,0xF6B0,0xE311,0xEEB7,0xF6B1,0xF848,0xE000,0xE310 },
1530 RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR
},
1531 { RTL_TEXTENCODING_BIG5_HKSCS
,
1532 RTL_CONSTASCII_STRINGPARAM("\xAD\xC5\x94\x55"),
1539 RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR
},
1540 { RTL_TEXTENCODING_BIG5_HKSCS
,
1541 RTL_CONSTASCII_STRINGPARAM("\xFA\x5F\xA0\xE4"),
1548 RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR
},
1549 { RTL_TEXTENCODING_BIG5_HKSCS
,
1550 RTL_CONSTASCII_STRINGPARAM("\xA0\x40\xA0\x7E\xA0\xA1\xA0\xFE"),
1551 { 0xEE1B,0xEE59,0xEE5A,0xEEB7 },
1557 RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR
},
1558 { RTL_TEXTENCODING_BIG5
,
1559 RTL_CONSTASCII_STRINGPARAM("\xA1\x45"),
1566 RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR
},
1567 { RTL_TEXTENCODING_BIG5
,
1568 RTL_CONSTASCII_STRINGPARAM(
1569 "\xC6\xCF\xC6\xD3\xC6\xD5\xC6\xD7\xC6\xDE\xC6\xDF"),
1570 { 0x306B,0x306F,0x3071,0x3073,0x307A,0x307B },
1576 RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR
},
1577 { RTL_TEXTENCODING_BIG5
,
1578 RTL_CONSTASCII_STRINGPARAM(
1579 "\xC7\xFD\xC7\xFE\xC8\x40\xC8\x7E\xC8\xA1\xC8\xFE"),
1580 { 0xF7AA,0xF7AB,0xF7AC,0xF7EA,0xF7EB,0xF848 },
1586 RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR
},
1587 { RTL_TEXTENCODING_BIG5
,
1588 RTL_CONSTASCII_STRINGPARAM("\xA0\x40\xA0\x7E\xA0\xA1\xA0\xFE"),
1589 { 0xEE1B,0xEE59,0xEE5A,0xEEB7 },
1595 RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR
},
1597 { RTL_TEXTENCODING_MS_950
,
1598 RTL_CONSTASCII_STRINGPARAM(
1599 "\xC6\xA1\xC6\xFE\xC7\x40\xC7\x7E\xC7\xA1\xC7\xFE\xC8\x40"
1600 "\xC8\x7E\xC8\xA1\xC8\xFE"),
1601 { 0xF6B1,0xF70E,0xF70F,0xF74D,0xF74E,0xF7AB,0xF7AC,0xF7EA,
1608 RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR
},
1609 { RTL_TEXTENCODING_MS_950
,
1610 RTL_CONSTASCII_STRINGPARAM("\xA0\x40\xA0\x7E\xA0\xA1\xA0\xFE"),
1611 { 0xEE1B,0xEE59,0xEE5A,0xEEB7 },
1617 RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR
},
1619 // Test Unicode beyond BMP:
1621 // FIXME The second m_bForward test (requiring a context) does not
1623 // { RTL_TEXTENCODING_UTF7,
1624 // RTL_CONSTASCII_STRINGPARAM("+2EndEw-"),
1625 // { 0xD849,0xDD13 },
1631 // RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
1632 { RTL_TEXTENCODING_UTF8
,
1633 RTL_CONSTASCII_STRINGPARAM("\xF0\xA2\x94\x93"),
1640 RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR
},
1641 #if WITH_LOCALE_ALL || WITH_LOCALE_zh
1642 { RTL_TEXTENCODING_GB_18030
,
1643 RTL_CONSTASCII_STRINGPARAM("\x95\x39\xC5\x37"),
1650 RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR
},
1651 { RTL_TEXTENCODING_BIG5_HKSCS
,
1652 RTL_CONSTASCII_STRINGPARAM("\xFA\x5E"),
1659 RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR
},
1661 // Test GBK (aka CP936):
1663 { RTL_TEXTENCODING_GBK
,
1664 RTL_CONSTASCII_STRINGPARAM("\xFD\x7C\xC1\xFA\xFD\x9B"),
1665 { 0x9F76,0x9F99,0x9FA5 },
1671 RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR
},
1673 { RTL_TEXTENCODING_MS_936
,
1674 RTL_CONSTASCII_STRINGPARAM("\xFD\x7C\xC1\xFA\xFD\x9B"),
1675 { 0x9F76,0x9F99,0x9FA5 },
1681 RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR
},
1682 #if WITH_LOCALE_ALL || WITH_LOCALE_zh
1683 { RTL_TEXTENCODING_GBK
,
1684 RTL_CONSTASCII_STRINGPARAM(
1685 "\xFE\x50\xFE\x54\xFE\x55\xFE\x56"
1686 "\xFE\x57\xFE\x58\xFE\x5A\xFE\x5B\xFE\x5C\xFE\x5D"
1687 "\xFE\x5E\xFE\x5F\xFE\x60\xFE\x62\xFE\x63\xFE\x64"
1688 "\xFE\x65\xFE\x68\xFE\x69\xFE\x6A\xFE\x6B"
1689 "\xFE\x6E\xFE\x6F\xFE\x70\xFE\x71\xFE\x72"
1690 "\xFE\x73\xFE\x74\xFE\x75\xFE\x77\xFE\x78\xFE\x79"
1691 "\xFE\x7A\xFE\x7B\xFE\x7C\xFE\x7D\xFE\x80\xFE\x81"
1692 "\xFE\x82\xFE\x83\xFE\x84\xFE\x85\xFE\x86\xFE\x87\xFE\x88"
1693 "\xFE\x89\xFE\x8A\xFE\x8B\xFE\x8C\xFE\x8D\xFE\x8E\xFE\x8F"
1694 "\xFE\x92\xFE\x93\xFE\x94\xFE\x95\xFE\x96"
1695 "\xFE\x97\xFE\x98\xFE\x99\xFE\x9A\xFE\x9B\xFE\x9C\xFE\x9D"
1696 "\xFE\x9E\xFE\x9F"),
1697 { 0x2E81,0x2E84,0x3473,0x3447,0x2E88,0x2E8B,0x359E,0x361A,
1698 0x360E,0x2E8C,0x2E97,0x396E,0x3918,0x39CF,0x39DF,0x3A73,
1699 0x39D0,0x3B4E,0x3C6E,0x3CE0,0x2EA7,0x2EAA,0x4056,0x415F,
1700 0x2EAE,0x4337,0x2EB3,0x2EB6,0x2EB7,0x43B1,0x43AC,0x2EBB,
1701 0x43DD,0x44D6,0x4661,0x464C,0x4723,0x4729,0x477C,0x478D,
1702 0x2ECA,0x4947,0x497A,0x497D,0x4982,0x4983,0x4985,0x4986,
1703 0x499F,0x499B,0x49B7,0x49B6,0x4CA3,0x4C9F,0x4CA0,0x4CA1,
1704 0x4C77,0x4CA2,0x4D13,0x4D14,0x4D15,0x4D16,0x4D17,0x4D18,
1711 RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR
},
1713 #if WITH_LOCALE_ALL || WITH_LOCALE_ja
1714 { RTL_TEXTENCODING_EUC_JP
,
1715 RTL_CONSTASCII_STRINGPARAM("?"),
1722 RTL_UNICODETOTEXT_FLAGS_UNDEFINED_QUESTIONMARK
},
1724 // Test of "JIS X 0208 row 13" (taken from CP932; added to
1725 // ISO-2022-JP and EUC-JP; 74 of the 83 characters introduce
1726 // mappings to new Unicode characters):
1727 { RTL_TEXTENCODING_MS_932
,
1728 RTL_CONSTASCII_STRINGPARAM(
1729 "\x87\x40\x87\x41\x87\x42\x87\x43\x87\x44\x87\x45\x87\x46"
1730 "\x87\x47\x87\x48\x87\x49\x87\x4A\x87\x4B\x87\x4C\x87\x4D"
1731 "\x87\x4E\x87\x4F\x87\x50\x87\x51\x87\x52\x87\x53\x87\x54"
1732 "\x87\x55\x87\x56\x87\x57\x87\x58\x87\x59\x87\x5A\x87\x5B"
1733 "\x87\x5C\x87\x5D\x87\x5F\x87\x60\x87\x61\x87\x62\x87\x63"
1734 "\x87\x64\x87\x65\x87\x66\x87\x67\x87\x68\x87\x69\x87\x6A"
1735 "\x87\x6B\x87\x6C\x87\x6D\x87\x6E\x87\x6F\x87\x70\x87\x71"
1736 "\x87\x72\x87\x73\x87\x74\x87\x75\x87\x7E\x87\x80\x87\x81"
1737 "\x87\x82\x87\x83\x87\x84\x87\x85\x87\x86\x87\x87\x87\x88"
1738 "\x87\x89\x87\x8A\x87\x8B\x87\x8C\x87\x8D\x87\x8E\x87\x8F"
1739 "\x87\x90\x87\x91\x87\x92\x87\x93\x87\x94\x87\x95\x87\x96"
1740 "\x87\x97\x87\x98\x87\x99\x87\x9A\x87\x9B\x87\x9C"),
1741 { 0x2460,0x2461,0x2462,0x2463,0x2464,0x2465,0x2466,0x2467,0x2468,
1742 0x2469,0x246A,0x246B,0x246C,0x246D,0x246E,0x246F,0x2470,0x2471,
1743 0x2472,0x2473,0x2160,0x2161,0x2162,0x2163,0x2164,0x2165,0x2166,
1744 0x2167,0x2168,0x2169,0x3349,0x3314,0x3322,0x334D,0x3318,0x3327,
1745 0x3303,0x3336,0x3351,0x3357,0x330D,0x3326,0x3323,0x332B,0x334A,
1746 0x333B,0x339C,0x339D,0x339E,0x338E,0x338F,0x33C4,0x33A1,0x337B,
1747 0x301D,0x301F,0x2116,0x33CD,0x2121,0x32A4,0x32A5,0x32A6,0x32A7,
1748 0x32A8,0x3231,0x3232,0x3239,0x337E,0x337D,0x337C,0x2252,0x2261,
1749 0x222B,0x222E,0x2211,0x221A,0x22A5,0x2220,0x221F,0x22BF,0x2235,
1756 RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR
},
1757 #if WITH_LOCALE_ALL || WITH_LOCALE_ja
1758 { RTL_TEXTENCODING_SHIFT_JIS
,
1759 RTL_CONSTASCII_STRINGPARAM(
1760 "\x87\x40\x87\x41\x87\x42\x87\x43\x87\x44\x87\x45\x87\x46"
1761 "\x87\x47\x87\x48\x87\x49\x87\x4A\x87\x4B\x87\x4C\x87\x4D"
1762 "\x87\x4E\x87\x4F\x87\x50\x87\x51\x87\x52\x87\x53\x87\x54"
1763 "\x87\x55\x87\x56\x87\x57\x87\x58\x87\x59\x87\x5A\x87\x5B"
1764 "\x87\x5C\x87\x5D\x87\x5F\x87\x60\x87\x61\x87\x62\x87\x63"
1765 "\x87\x64\x87\x65\x87\x66\x87\x67\x87\x68\x87\x69\x87\x6A"
1766 "\x87\x6B\x87\x6C\x87\x6D\x87\x6E\x87\x6F\x87\x70\x87\x71"
1767 "\x87\x72\x87\x73\x87\x74\x87\x75\x87\x7E\x87\x80\x87\x81"
1768 "\x87\x82\x87\x83\x87\x84\x87\x85\x87\x86\x87\x87\x87\x88"
1769 "\x87\x89\x87\x8A\x87\x8B\x87\x8C\x87\x8D\x87\x8E\x87\x8F"
1770 "\x87\x90\x87\x91\x87\x92\x87\x93\x87\x94\x87\x95\x87\x96"
1771 "\x87\x97\x87\x98\x87\x99\x87\x9A\x87\x9B\x87\x9C"),
1772 { 0x2460,0x2461,0x2462,0x2463,0x2464,0x2465,0x2466,0x2467,0x2468,
1773 0x2469,0x246A,0x246B,0x246C,0x246D,0x246E,0x246F,0x2470,0x2471,
1774 0x2472,0x2473,0x2160,0x2161,0x2162,0x2163,0x2164,0x2165,0x2166,
1775 0x2167,0x2168,0x2169,0x3349,0x3314,0x3322,0x334D,0x3318,0x3327,
1776 0x3303,0x3336,0x3351,0x3357,0x330D,0x3326,0x3323,0x332B,0x334A,
1777 0x333B,0x339C,0x339D,0x339E,0x338E,0x338F,0x33C4,0x33A1,0x337B,
1778 0x301D,0x301F,0x2116,0x33CD,0x2121,0x32A4,0x32A5,0x32A6,0x32A7,
1779 0x32A8,0x3231,0x3232,0x3239,0x337E,0x337D,0x337C,0x2252,0x2261,
1780 0x222B,0x222E,0x2211,0x221A,0x22A5,0x2220,0x221F,0x22BF,0x2235,
1787 RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR
},
1788 { RTL_TEXTENCODING_ISO_2022_JP
,
1789 RTL_CONSTASCII_STRINGPARAM(
1790 "\x1B$B\x2D\x21\x2D\x22\x2D\x23\x2D\x24\x2D\x25\x2D\x26"
1791 "\x2D\x27\x2D\x28\x2D\x29\x2D\x2A\x2D\x2B\x2D\x2C\x2D\x2D"
1792 "\x2D\x2E\x2D\x2F\x2D\x30\x2D\x31\x2D\x32\x2D\x33\x2D\x34"
1793 "\x2D\x35\x2D\x36\x2D\x37\x2D\x38\x2D\x39\x2D\x3A\x2D\x3B"
1794 "\x2D\x3C\x2D\x3D\x2D\x3E\x2D\x40\x2D\x41\x2D\x42\x2D\x43"
1795 "\x2D\x44\x2D\x45\x2D\x46\x2D\x47\x2D\x48\x2D\x49\x2D\x4A"
1796 "\x2D\x4B\x2D\x4C\x2D\x4D\x2D\x4E\x2D\x4F\x2D\x50\x2D\x51"
1797 "\x2D\x52\x2D\x53\x2D\x54\x2D\x55\x2D\x56\x2D\x5F\x2D\x60"
1798 "\x2D\x61\x2D\x62\x2D\x63\x2D\x64\x2D\x65\x2D\x66\x2D\x67"
1799 "\x2D\x68\x2D\x69\x2D\x6A\x2D\x6B\x2D\x6C\x2D\x6D\x2D\x6E"
1800 "\x2D\x6F\x2D\x70\x2D\x71\x2D\x72\x2D\x73\x2D\x74\x2D\x75"
1801 "\x2D\x76\x2D\x77\x2D\x78\x2D\x79\x2D\x7A\x2D\x7B\x2D\x7C"
1803 { 0x2460,0x2461,0x2462,0x2463,0x2464,0x2465,0x2466,0x2467,0x2468,
1804 0x2469,0x246A,0x246B,0x246C,0x246D,0x246E,0x246F,0x2470,0x2471,
1805 0x2472,0x2473,0x2160,0x2161,0x2162,0x2163,0x2164,0x2165,0x2166,
1806 0x2167,0x2168,0x2169,0x3349,0x3314,0x3322,0x334D,0x3318,0x3327,
1807 0x3303,0x3336,0x3351,0x3357,0x330D,0x3326,0x3323,0x332B,0x334A,
1808 0x333B,0x339C,0x339D,0x339E,0x338E,0x338F,0x33C4,0x33A1,0x337B,
1809 0x301D,0x301F,0x2116,0x33CD,0x2121,0x32A4,0x32A5,0x32A6,0x32A7,
1810 0x32A8,0x3231,0x3232,0x3239,0x337E,0x337D,0x337C,0x2252,0x2261,
1811 0x222B,0x222E,0x2211,0x221A,0x22A5,0x2220,0x221F,0x22BF,0x2235,
1818 RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR
},
1819 { RTL_TEXTENCODING_ISO_2022_JP
,
1820 RTL_CONSTASCII_STRINGPARAM(
1821 "\x1B$B\x2D\x21\x2D\x22\x2D\x23\x2D\x24\x2D\x25\x2D\x26"
1822 "\x2D\x27\x2D\x28\x2D\x29\x2D\x2A\x2D\x2B\x2D\x2C\x2D\x2D"
1823 "\x2D\x2E\x2D\x2F\x2D\x30\x2D\x31\x2D\x32\x2D\x33\x2D\x34"
1824 "\x2D\x35\x2D\x36\x2D\x37\x2D\x38\x2D\x39\x2D\x3A\x2D\x3B"
1825 "\x2D\x3C\x2D\x3D\x2D\x3E\x2D\x40\x2D\x41\x2D\x42\x2D\x43"
1826 "\x2D\x44\x2D\x45\x2D\x46\x2D\x47\x2D\x48\x2D\x49\x2D\x4A"
1827 "\x2D\x4B\x2D\x4C\x2D\x4D\x2D\x4E\x2D\x4F\x2D\x50\x2D\x51"
1828 "\x2D\x52\x2D\x53\x2D\x54\x2D\x55\x2D\x56\x2D\x5F\x2D\x60"
1829 "\x2D\x61\x2D\x62\x2D\x63\x2D\x64\x2D\x65\x2D\x66\x2D\x67"
1830 "\x2D\x68\x2D\x69\x2D\x6A\x2D\x6B\x2D\x6C\x2D\x6D\x2D\x6E"
1831 "\x2D\x6F\x2D\x73\x2D\x74\x2D\x78\x2D\x79\x1B(B"),
1832 { 0x2460,0x2461,0x2462,0x2463,0x2464,0x2465,0x2466,0x2467,0x2468,
1833 0x2469,0x246A,0x246B,0x246C,0x246D,0x246E,0x246F,0x2470,0x2471,
1834 0x2472,0x2473,0x2160,0x2161,0x2162,0x2163,0x2164,0x2165,0x2166,
1835 0x2167,0x2168,0x2169,0x3349,0x3314,0x3322,0x334D,0x3318,0x3327,
1836 0x3303,0x3336,0x3351,0x3357,0x330D,0x3326,0x3323,0x332B,0x334A,
1837 0x333B,0x339C,0x339D,0x339E,0x338E,0x338F,0x33C4,0x33A1,0x337B,
1838 0x301D,0x301F,0x2116,0x33CD,0x2121,0x32A4,0x32A5,0x32A6,0x32A7,
1839 0x32A8,0x3231,0x3232,0x3239,0x337E,0x337D,0x337C,0x222E,0x2211,
1846 RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR
},
1847 { RTL_TEXTENCODING_EUC_JP
,
1848 RTL_CONSTASCII_STRINGPARAM(
1849 "\xAD\xA1\xAD\xA2\xAD\xA3\xAD\xA4\xAD\xA5\xAD\xA6\xAD\xA7"
1850 "\xAD\xA8\xAD\xA9\xAD\xAA\xAD\xAB\xAD\xAC\xAD\xAD\xAD\xAE"
1851 "\xAD\xAF\xAD\xB0\xAD\xB1\xAD\xB2\xAD\xB3\xAD\xB4\xAD\xB5"
1852 "\xAD\xB6\xAD\xB7\xAD\xB8\xAD\xB9\xAD\xBA\xAD\xBB\xAD\xBC"
1853 "\xAD\xBD\xAD\xBE\xAD\xC0\xAD\xC1\xAD\xC2\xAD\xC3\xAD\xC4"
1854 "\xAD\xC5\xAD\xC6\xAD\xC7\xAD\xC8\xAD\xC9\xAD\xCA\xAD\xCB"
1855 "\xAD\xCC\xAD\xCD\xAD\xCE\xAD\xCF\xAD\xD0\xAD\xD1\xAD\xD2"
1856 "\xAD\xD3\xAD\xD4\xAD\xD5\xAD\xD6\xAD\xDF\xAD\xE0\xAD\xE1"
1857 "\xAD\xE2\xAD\xE3\xAD\xE4\xAD\xE5\xAD\xE6\xAD\xE7\xAD\xE8"
1858 "\xAD\xE9\xAD\xEA\xAD\xEB\xAD\xEC\xAD\xED\xAD\xEE\xAD\xEF"
1859 "\xAD\xF0\xAD\xF1\xAD\xF2\xAD\xF3\xAD\xF4\xAD\xF5\xAD\xF6"
1860 "\xAD\xF7\xAD\xF8\xAD\xF9\xAD\xFA\xAD\xFB\xAD\xFC"),
1861 { 0x2460,0x2461,0x2462,0x2463,0x2464,0x2465,0x2466,0x2467,0x2468,
1862 0x2469,0x246A,0x246B,0x246C,0x246D,0x246E,0x246F,0x2470,0x2471,
1863 0x2472,0x2473,0x2160,0x2161,0x2162,0x2163,0x2164,0x2165,0x2166,
1864 0x2167,0x2168,0x2169,0x3349,0x3314,0x3322,0x334D,0x3318,0x3327,
1865 0x3303,0x3336,0x3351,0x3357,0x330D,0x3326,0x3323,0x332B,0x334A,
1866 0x333B,0x339C,0x339D,0x339E,0x338E,0x338F,0x33C4,0x33A1,0x337B,
1867 0x301D,0x301F,0x2116,0x33CD,0x2121,0x32A4,0x32A5,0x32A6,0x32A7,
1868 0x32A8,0x3231,0x3232,0x3239,0x337E,0x337D,0x337C,0x2252,0x2261,
1869 0x222B,0x222E,0x2211,0x221A,0x22A5,0x2220,0x221F,0x22BF,0x2235,
1876 RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR
},
1877 { RTL_TEXTENCODING_EUC_JP
,
1878 RTL_CONSTASCII_STRINGPARAM(
1879 "\xAD\xA1\xAD\xA2\xAD\xA3\xAD\xA4\xAD\xA5\xAD\xA6\xAD\xA7"
1880 "\xAD\xA8\xAD\xA9\xAD\xAA\xAD\xAB\xAD\xAC\xAD\xAD\xAD\xAE"
1881 "\xAD\xAF\xAD\xB0\xAD\xB1\xAD\xB2\xAD\xB3\xAD\xB4\xAD\xB5"
1882 "\xAD\xB6\xAD\xB7\xAD\xB8\xAD\xB9\xAD\xBA\xAD\xBB\xAD\xBC"
1883 "\xAD\xBD\xAD\xBE\xAD\xC0\xAD\xC1\xAD\xC2\xAD\xC3\xAD\xC4"
1884 "\xAD\xC5\xAD\xC6\xAD\xC7\xAD\xC8\xAD\xC9\xAD\xCA\xAD\xCB"
1885 "\xAD\xCC\xAD\xCD\xAD\xCE\xAD\xCF\xAD\xD0\xAD\xD1\xAD\xD2"
1886 "\xAD\xD3\xAD\xD4\xAD\xD5\xAD\xD6\xAD\xDF\xAD\xE0\xAD\xE1"
1887 "\xAD\xE2\xAD\xE3\xAD\xE4\xAD\xE5\xAD\xE6\xAD\xE7\xAD\xE8"
1888 "\xAD\xE9\xAD\xEA\xAD\xEB\xAD\xEC\xAD\xED\xAD\xEE\xAD\xEF"
1889 "\xAD\xF3\xAD\xF4\xAD\xF8\xAD\xF9"),
1890 { 0x2460,0x2461,0x2462,0x2463,0x2464,0x2465,0x2466,0x2467,0x2468,
1891 0x2469,0x246A,0x246B,0x246C,0x246D,0x246E,0x246F,0x2470,0x2471,
1892 0x2472,0x2473,0x2160,0x2161,0x2162,0x2163,0x2164,0x2165,0x2166,
1893 0x2167,0x2168,0x2169,0x3349,0x3314,0x3322,0x334D,0x3318,0x3327,
1894 0x3303,0x3336,0x3351,0x3357,0x330D,0x3326,0x3323,0x332B,0x334A,
1895 0x333B,0x339C,0x339D,0x339E,0x338E,0x338F,0x33C4,0x33A1,0x337B,
1896 0x301D,0x301F,0x2116,0x33CD,0x2121,0x32A4,0x32A5,0x32A6,0x32A7,
1897 0x32A8,0x3231,0x3232,0x3239,0x337E,0x337D,0x337C,0x222E,0x2211,
1904 RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR
},
1906 { RTL_TEXTENCODING_EUC_JP
,
1907 RTL_CONSTASCII_STRINGPARAM("\xB9\xF5"),
1914 RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR
},
1916 // Test ISO-8859-x/MS-125x range 0x80--9F:
1918 { RTL_TEXTENCODING_ISO_8859_1
,
1919 RTL_CONSTASCII_STRINGPARAM(
1920 "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E"
1921 "\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D"
1923 { 0x0080,0x0081,0x0082,0x0083,0x0084,0x0085,0x0086,0x0087,0x0088,
1924 0x0089,0x008A,0x008B,0x008C,0x008D,0x008E,0x008F,0x0090,0x0091,
1925 0x0092,0x0093,0x0094,0x0095,0x0096,0x0097,0x0098,0x0099,0x009A,
1926 0x009B,0x009C,0x009D,0x009E,0x009F },
1932 RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR
},
1933 { RTL_TEXTENCODING_ISO_8859_2
,
1934 RTL_CONSTASCII_STRINGPARAM(
1935 "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E"
1936 "\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D"
1938 { 0x0080,0x0081,0x0082,0x0083,0x0084,0x0085,0x0086,0x0087,0x0088,
1939 0x0089,0x008A,0x008B,0x008C,0x008D,0x008E,0x008F,0x0090,0x0091,
1940 0x0092,0x0093,0x0094,0x0095,0x0096,0x0097,0x0098,0x0099,0x009A,
1941 0x009B,0x009C,0x009D,0x009E,0x009F },
1947 RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR
},
1948 { RTL_TEXTENCODING_ISO_8859_3
,
1949 RTL_CONSTASCII_STRINGPARAM(
1950 "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E"
1951 "\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D"
1953 { 0x0080,0x0081,0x0082,0x0083,0x0084,0x0085,0x0086,0x0087,0x0088,
1954 0x0089,0x008A,0x008B,0x008C,0x008D,0x008E,0x008F,0x0090,0x0091,
1955 0x0092,0x0093,0x0094,0x0095,0x0096,0x0097,0x0098,0x0099,0x009A,
1956 0x009B,0x009C,0x009D,0x009E,0x009F },
1962 RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR
},
1963 { RTL_TEXTENCODING_ISO_8859_4
,
1964 RTL_CONSTASCII_STRINGPARAM(
1965 "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E"
1966 "\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D"
1968 { 0x0080,0x0081,0x0082,0x0083,0x0084,0x0085,0x0086,0x0087,0x0088,
1969 0x0089,0x008A,0x008B,0x008C,0x008D,0x008E,0x008F,0x0090,0x0091,
1970 0x0092,0x0093,0x0094,0x0095,0x0096,0x0097,0x0098,0x0099,0x009A,
1971 0x009B,0x009C,0x009D,0x009E,0x009F },
1977 RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR
},
1978 { RTL_TEXTENCODING_ISO_8859_5
,
1979 RTL_CONSTASCII_STRINGPARAM(
1980 "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E"
1981 "\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D"
1983 { 0x0080,0x0081,0x0082,0x0083,0x0084,0x0085,0x0086,0x0087,0x0088,
1984 0x0089,0x008A,0x008B,0x008C,0x008D,0x008E,0x008F,0x0090,0x0091,
1985 0x0092,0x0093,0x0094,0x0095,0x0096,0x0097,0x0098,0x0099,0x009A,
1986 0x009B,0x009C,0x009D,0x009E,0x009F },
1992 RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR
},
1993 { RTL_TEXTENCODING_ISO_8859_6
,
1994 RTL_CONSTASCII_STRINGPARAM(
1995 "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E"
1996 "\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D"
1998 { 0x0080,0x0081,0x0082,0x0083,0x0084,0x0085,0x0086,0x0087,0x0088,
1999 0x0089,0x008A,0x008B,0x008C,0x008D,0x008E,0x008F,0x0090,0x0091,
2000 0x0092,0x0093,0x0094,0x0095,0x0096,0x0097,0x0098,0x0099,0x009A,
2001 0x009B,0x009C,0x009D,0x009E,0x009F },
2007 RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR
},
2008 { RTL_TEXTENCODING_ISO_8859_7
,
2009 RTL_CONSTASCII_STRINGPARAM(
2010 "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E"
2011 "\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D"
2013 { 0x0080,0x0081,0x0082,0x0083,0x0084,0x0085,0x0086,0x0087,0x0088,
2014 0x0089,0x008A,0x008B,0x008C,0x008D,0x008E,0x008F,0x0090,0x0091,
2015 0x0092,0x0093,0x0094,0x0095,0x0096,0x0097,0x0098,0x0099,0x009A,
2016 0x009B,0x009C,0x009D,0x009E,0x009F },
2022 RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR
},
2023 { RTL_TEXTENCODING_ISO_8859_8
,
2024 RTL_CONSTASCII_STRINGPARAM(
2025 "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E"
2026 "\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D"
2028 { 0x0080,0x0081,0x0082,0x0083,0x0084,0x0085,0x0086,0x0087,0x0088,
2029 0x0089,0x008A,0x008B,0x008C,0x008D,0x008E,0x008F,0x0090,0x0091,
2030 0x0092,0x0093,0x0094,0x0095,0x0096,0x0097,0x0098,0x0099,0x009A,
2031 0x009B,0x009C,0x009D,0x009E,0x009F },
2037 RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR
},
2038 { RTL_TEXTENCODING_ISO_8859_9
,
2039 RTL_CONSTASCII_STRINGPARAM(
2040 "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E"
2041 "\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D"
2043 { 0x0080,0x0081,0x0082,0x0083,0x0084,0x0085,0x0086,0x0087,0x0088,
2044 0x0089,0x008A,0x008B,0x008C,0x008D,0x008E,0x008F,0x0090,0x0091,
2045 0x0092,0x0093,0x0094,0x0095,0x0096,0x0097,0x0098,0x0099,0x009A,
2046 0x009B,0x009C,0x009D,0x009E,0x009F },
2052 RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR
},
2053 { RTL_TEXTENCODING_ISO_8859_14
,
2054 RTL_CONSTASCII_STRINGPARAM(
2055 "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E"
2056 "\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D"
2058 { 0x0080,0x0081,0x0082,0x0083,0x0084,0x0085,0x0086,0x0087,0x0088,
2059 0x0089,0x008A,0x008B,0x008C,0x008D,0x008E,0x008F,0x0090,0x0091,
2060 0x0092,0x0093,0x0094,0x0095,0x0096,0x0097,0x0098,0x0099,0x009A,
2061 0x009B,0x009C,0x009D,0x009E,0x009F },
2067 RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR
},
2068 { RTL_TEXTENCODING_ISO_8859_15
,
2069 RTL_CONSTASCII_STRINGPARAM(
2070 "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E"
2071 "\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D"
2073 { 0x0080,0x0081,0x0082,0x0083,0x0084,0x0085,0x0086,0x0087,0x0088,
2074 0x0089,0x008A,0x008B,0x008C,0x008D,0x008E,0x008F,0x0090,0x0091,
2075 0x0092,0x0093,0x0094,0x0095,0x0096,0x0097,0x0098,0x0099,0x009A,
2076 0x009B,0x009C,0x009D,0x009E,0x009F },
2082 RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR
},
2083 { RTL_TEXTENCODING_MS_874
,
2084 RTL_CONSTASCII_STRINGPARAM(""),
2085 { 0x0080,0x0081,0x0082,0x0083,0x0084,0x0085,0x0086,0x0087,0x0088,
2086 0x0089,0x008A,0x008B,0x008C,0x008D,0x008E,0x008F,0x0090,0x0091,
2087 0x0092,0x0093,0x0094,0x0095,0x0096,0x0097,0x0098,0x0099,0x009A,
2088 0x009B,0x009C,0x009D,0x009E,0x009F },
2094 RTL_UNICODETOTEXT_FLAGS_UNDEFINED_IGNORE
},
2095 { RTL_TEXTENCODING_MS_1250
,
2096 RTL_CONSTASCII_STRINGPARAM(""),
2097 { 0x0080,0x0081,0x0082,0x0083,0x0084,0x0085,0x0086,0x0087,0x0088,
2098 0x0089,0x008A,0x008B,0x008C,0x008D,0x008E,0x008F,0x0090,0x0091,
2099 0x0092,0x0093,0x0094,0x0095,0x0096,0x0097,0x0098,0x0099,0x009A,
2100 0x009B,0x009C,0x009D,0x009E,0x009F },
2106 RTL_UNICODETOTEXT_FLAGS_UNDEFINED_IGNORE
},
2107 { RTL_TEXTENCODING_MS_1251
,
2108 RTL_CONSTASCII_STRINGPARAM(""),
2109 { 0x0080,0x0081,0x0082,0x0083,0x0084,0x0085,0x0086,0x0087,0x0088,
2110 0x0089,0x008A,0x008B,0x008C,0x008D,0x008E,0x008F,0x0090,0x0091,
2111 0x0092,0x0093,0x0094,0x0095,0x0096,0x0097,0x0098,0x0099,0x009A,
2112 0x009B,0x009C,0x009D,0x009E,0x009F },
2118 RTL_UNICODETOTEXT_FLAGS_UNDEFINED_IGNORE
},
2119 { RTL_TEXTENCODING_MS_1252
,
2120 RTL_CONSTASCII_STRINGPARAM(""),
2121 { 0x0080,0x0081,0x0082,0x0083,0x0084,0x0085,0x0086,0x0087,0x0088,
2122 0x0089,0x008A,0x008B,0x008C,0x008D,0x008E,0x008F,0x0090,0x0091,
2123 0x0092,0x0093,0x0094,0x0095,0x0096,0x0097,0x0098,0x0099,0x009A,
2124 0x009B,0x009C,0x009D,0x009E,0x009F },
2130 RTL_UNICODETOTEXT_FLAGS_UNDEFINED_IGNORE
},
2131 { RTL_TEXTENCODING_MS_1253
,
2132 RTL_CONSTASCII_STRINGPARAM(""),
2133 { 0x0080,0x0081,0x0082,0x0083,0x0084,0x0085,0x0086,0x0087,0x0088,
2134 0x0089,0x008A,0x008B,0x008C,0x008D,0x008E,0x008F,0x0090,0x0091,
2135 0x0092,0x0093,0x0094,0x0095,0x0096,0x0097,0x0098,0x0099,0x009A,
2136 0x009B,0x009C,0x009D,0x009E,0x009F },
2142 RTL_UNICODETOTEXT_FLAGS_UNDEFINED_IGNORE
},
2143 { RTL_TEXTENCODING_MS_1254
,
2144 RTL_CONSTASCII_STRINGPARAM(""),
2145 { 0x0080,0x0081,0x0082,0x0083,0x0084,0x0085,0x0086,0x0087,0x0088,
2146 0x0089,0x008A,0x008B,0x008C,0x008D,0x008E,0x008F,0x0090,0x0091,
2147 0x0092,0x0093,0x0094,0x0095,0x0096,0x0097,0x0098,0x0099,0x009A,
2148 0x009B,0x009C,0x009D,0x009E,0x009F },
2154 RTL_UNICODETOTEXT_FLAGS_UNDEFINED_IGNORE
},
2155 { RTL_TEXTENCODING_MS_1255
,
2156 RTL_CONSTASCII_STRINGPARAM(""),
2157 { 0x0080,0x0081,0x0082,0x0083,0x0084,0x0085,0x0086,0x0087,0x0088,
2158 0x0089,0x008A,0x008B,0x008C,0x008D,0x008E,0x008F,0x0090,0x0091,
2159 0x0092,0x0093,0x0094,0x0095,0x0096,0x0097,0x0098,0x0099,0x009A,
2160 0x009B,0x009C,0x009D,0x009E,0x009F },
2166 RTL_UNICODETOTEXT_FLAGS_UNDEFINED_IGNORE
},
2167 { RTL_TEXTENCODING_MS_1256
,
2168 RTL_CONSTASCII_STRINGPARAM(""),
2169 { 0x0080,0x0081,0x0082,0x0083,0x0084,0x0085,0x0086,0x0087,0x0088,
2170 0x0089,0x008A,0x008B,0x008C,0x008D,0x008E,0x008F,0x0090,0x0091,
2171 0x0092,0x0093,0x0094,0x0095,0x0096,0x0097,0x0098,0x0099,0x009A,
2172 0x009B,0x009C,0x009D,0x009E,0x009F },
2178 RTL_UNICODETOTEXT_FLAGS_UNDEFINED_IGNORE
},
2179 { RTL_TEXTENCODING_MS_1257
,
2180 RTL_CONSTASCII_STRINGPARAM(""),
2181 { 0x0080,0x0081,0x0082,0x0083,0x0084,0x0085,0x0086,0x0087,0x0088,
2182 0x0089,0x008A,0x008B,0x008C,0x008D,0x008E,0x008F,0x0090,0x0091,
2183 0x0092,0x0093,0x0094,0x0095,0x0096,0x0097,0x0098,0x0099,0x009A,
2184 0x009B,0x009C,0x009D,0x009E,0x009F },
2190 RTL_UNICODETOTEXT_FLAGS_UNDEFINED_IGNORE
},
2191 { RTL_TEXTENCODING_MS_1258
,
2192 RTL_CONSTASCII_STRINGPARAM(""),
2193 { 0x0080,0x0081,0x0082,0x0083,0x0084,0x0085,0x0086,0x0087,0x0088,
2194 0x0089,0x008A,0x008B,0x008C,0x008D,0x008E,0x008F,0x0090,0x0091,
2195 0x0092,0x0093,0x0094,0x0095,0x0096,0x0097,0x0098,0x0099,0x009A,
2196 0x009B,0x009C,0x009D,0x009E,0x009F },
2202 RTL_UNICODETOTEXT_FLAGS_UNDEFINED_IGNORE
},
2203 { RTL_TEXTENCODING_MS_949
,
2204 RTL_CONSTASCII_STRINGPARAM(
2205 "\xB0\xA1\xB0\xA2\x81\x41\x81\x42\xB0\xA3\x81\x43\x81\x44"
2206 "\xB0\xA4\xB0\xA5\xB0\xA6\xB0\xA7\x81\x45\x81\x46\x81\x47"
2207 "\x81\x48\x81\x49\xB0\xA8\xB0\xA9\xB0\xAA\xB0\xAB\xB0\xAC"
2208 "\xB0\xAD\xB0\xAE\xB0\xAF\x81\x4A\xB0\xB0\xB0\xB1\xB0\xB2"),
2209 { 0xAC00,0xAC01,0xAC02,0xAC03,0xAC04,0xAC05,0xAC06,0xAC07,0xAC08,
2210 0xAC09,0xAC0A,0xAC0B,0xAC0C,0xAC0D,0xAC0E,0xAC0F,0xAC10,0xAC11,
2211 0xAC12,0xAC13,0xAC14,0xAC15,0xAC16,0xAC17,0xAC18,0xAC19,0xAC1A,
2218 RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR
},
2219 { RTL_TEXTENCODING_MS_949
,
2220 RTL_CONSTASCII_STRINGPARAM(
2221 "\xC9\xA1\xC9\xA2\xC9\xA3\xC9\xFC\xC9\xFD\xC9\xFE"
2222 "\xFE\xA1\xFE\xA2\xFE\xA3\xFE\xFC\xFE\xFD\xFE\xFE"),
2223 { 0xE000,0xE001,0xE002,0xE05B,0xE05C,0xE05D,
2224 0xE05E,0xE05F,0xE060,0xE0B9,0xE0BA,0xE0BB },
2230 RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR
},
2231 #if WITH_LOCALE_ALL || WITH_LOCALE_ko
2232 { RTL_TEXTENCODING_EUC_KR
,
2233 RTL_CONSTASCII_STRINGPARAM(
2234 "\xB0\xA1\xB0\xA2" "\xB0\xA3"
2235 "\xB0\xA4\xB0\xA5\xB0\xA6\xB0\xA7"
2236 "\xB0\xA8\xB0\xA9\xB0\xAA\xB0\xAB\xB0\xAC"
2237 "\xB0\xAD\xB0\xAE\xB0\xAF" "\xB0\xB0\xB0\xB1\xB0\xB2"),
2238 { 0xAC00,0xAC01, 0xAC04, 0xAC07,0xAC08,
2239 0xAC09,0xAC0A, 0xAC10,0xAC11,
2240 0xAC12,0xAC13,0xAC14,0xAC15,0xAC16,0xAC17, 0xAC19,0xAC1A,
2247 RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR
},
2248 { RTL_TEXTENCODING_EUC_KR
,
2249 RTL_CONSTASCII_STRINGPARAM(
2250 "\xB0\xA1\xB0\xA2" "\xB0\xA3"
2251 "\xB0\xA4\xB0\xA5\xB0\xA6\xB0\xA7"
2252 "\xB0\xA8\xB0\xA9\xB0\xAA\xB0\xAB\xB0\xAC"
2253 "\xB0\xAD\xB0\xAE\xB0\xAF" "\xB0\xB0\xB0\xB1\xB0\xB2"),
2254 { 0xAC00,0xAC01,0xAC02,0xAC03,0xAC04,0xAC05,0xAC06,0xAC07,0xAC08,
2255 0xAC09,0xAC0A,0xAC0B,0xAC0C,0xAC0D,0xAC0E,0xAC0F,0xAC10,0xAC11,
2256 0xAC12,0xAC13,0xAC14,0xAC15,0xAC16,0xAC17,0xAC18,0xAC19,0xAC1A,
2263 RTL_UNICODETOTEXT_FLAGS_UNDEFINED_IGNORE
},
2264 { RTL_TEXTENCODING_EUC_KR
,
2265 RTL_CONSTASCII_STRINGPARAM(
2266 "\xC9\xA1\xC9\xA2\xC9\xA3\xC9\xFC\xC9\xFD\xC9\xFE"
2267 "\xFE\xA1\xFE\xA2\xFE\xA3\xFE\xFC\xFE\xFD\xFE\xFE"),
2268 { 0xE000,0xE001,0xE002,0xE05B,0xE05C,0xE05D,
2269 0xE05E,0xE05F,0xE060,0xE0B9,0xE0BA,0xE0BB },
2275 RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR
},
2279 { RTL_TEXTENCODING_UTF8
,
2280 RTL_CONSTASCII_STRINGPARAM("\x00"),
2287 RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR
},
2288 { RTL_TEXTENCODING_UTF8
,
2289 RTL_CONSTASCII_STRINGPARAM("\xEF\xBB\xBF"),
2296 RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR
},
2297 { RTL_TEXTENCODING_UTF8
,
2298 RTL_CONSTASCII_STRINGPARAM("\xEF\xBB\xBF\xEF\xBB\xBF"),
2305 RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR
},
2306 { RTL_TEXTENCODING_UTF8
,
2307 RTL_CONSTASCII_STRINGPARAM("\xEF\xBB\xBF"),
2314 RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR
},
2315 { RTL_TEXTENCODING_UTF8
,
2316 RTL_CONSTASCII_STRINGPARAM("\xEF\xBB\xBF\xEF\xBB\xBF"),
2323 RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR
},
2324 { RTL_TEXTENCODING_UTF8
,
2325 RTL_CONSTASCII_STRINGPARAM("\x01\x02\x7E\x7F"),
2326 { 0x0001,0x0002,0x007E,0x007F },
2332 RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR
},
2333 { RTL_TEXTENCODING_UTF8
,
2334 RTL_CONSTASCII_STRINGPARAM(
2335 "\xC0\x80\xE0\x80\x81\xF0\x80\x80\x82\xF8\x80\x80\x80\x83"
2336 "\xFC\x80\x80\x80\x80\x84"),
2337 { 0x0000,0x0001,0x0002,0x0003,0x0004 },
2343 RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR
},
2344 { RTL_TEXTENCODING_UTF8
,
2345 RTL_CONSTASCII_STRINGPARAM("\xED\xA1\x89\xED\xB4\x93"),
2352 RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR
},
2353 { RTL_TEXTENCODING_UTF8
,
2354 RTL_CONSTASCII_STRINGPARAM("\xED\xA1\x89\x41"),
2361 RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR
},
2365 { RTL_TEXTENCODING_JAVA_UTF8
,
2366 RTL_CONSTASCII_STRINGPARAM(
2367 "\xEF\xBB\xBF\xC0\x80\x01\x20\x41\x7F\xED\xA0\x80"
2369 { 0xFEFF,0x0000,0x0001,0x0020,0x0041,0x007F,0xD800,0xDC00 },
2375 RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR
},
2377 #if WITH_LOCALE_ALL || WITH_LOCALE_ja
2379 { RTL_TEXTENCODING_SHIFT_JIS
,
2380 RTL_CONSTASCII_STRINGPARAM("\x81\x63"),
2387 RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR
},
2388 { RTL_TEXTENCODING_SHIFT_JIS
,
2389 RTL_CONSTASCII_STRINGPARAM("\xA0\xFD\xFE\xFF"),
2390 { 0x00A0, 0x00A9, 0x2122, 0x2026 },
2396 RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR
},
2397 { RTL_TEXTENCODING_SHIFT_JIS
,
2398 RTL_CONSTASCII_STRINGPARAM(""),
2399 { 0x00A0, 0x00A9, 0x2122 },
2405 RTL_UNICODETOTEXT_FLAGS_UNDEFINED_IGNORE
},
2407 { RTL_TEXTENCODING_MS_932
,
2408 RTL_CONSTASCII_STRINGPARAM("\x81\x63"),
2415 RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR
},
2416 { RTL_TEXTENCODING_MS_932
,
2417 RTL_CONSTASCII_STRINGPARAM("\xA0\xFD\xFE\xFF"),
2418 { 0x00A0, 0x00A9, 0x2122, 0x2026 },
2424 RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR
},
2425 { RTL_TEXTENCODING_MS_932
,
2426 RTL_CONSTASCII_STRINGPARAM(""),
2427 { 0x00A0, 0x00A9, 0x2122 },
2433 RTL_UNICODETOTEXT_FLAGS_UNDEFINED_IGNORE
},
2434 { RTL_TEXTENCODING_APPLE_JAPANESE
,
2435 RTL_CONSTASCII_STRINGPARAM("\xA0\xFD\xFE\x81\x63"),
2436 { 0x00A0, 0x00A9, 0x2122, 0x2026 },
2442 RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR
},
2443 { RTL_TEXTENCODING_APPLE_JAPANESE
,
2444 RTL_CONSTASCII_STRINGPARAM("\xFF"),
2451 RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR
},
2453 { RTL_TEXTENCODING_ADOBE_STANDARD
,
2454 RTL_CONSTASCII_STRINGPARAM("\x20\x2D\xA4\xB4\xC5"),
2455 { 0x0020, 0x002D, 0x2215, 0x00B7, 0x00AF },
2461 RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR
},
2462 { RTL_TEXTENCODING_ADOBE_STANDARD
,
2463 RTL_CONSTASCII_STRINGPARAM("\x20\x2D\xA4\xB4\xC5"),
2464 { 0x00A0, 0x00AD, 0x2044, 0x2219, 0x02C9 },
2470 RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR
},
2472 { RTL_TEXTENCODING_ADOBE_SYMBOL
,
2473 RTL_CONSTASCII_STRINGPARAM("\x20\x44\x57\x6D\xA4"),
2474 { 0x0020, 0x0394, 0x03A9, 0x03BC, 0x2215 },
2480 RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR
},
2481 { RTL_TEXTENCODING_ADOBE_SYMBOL
,
2482 RTL_CONSTASCII_STRINGPARAM("\x20\x44\x57\x6D\xA4"),
2483 { 0x00A0, 0x2206, 0x2126, 0x00B5, 0x2044 },
2489 RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR
},
2491 #if WITH_LOCALE_ALL || WITH_LOCALE_ja
2493 { RTL_TEXTENCODING_SHIFT_JIS
,
2494 RTL_CONSTASCII_STRINGPARAM(
2495 "\xF0\x40\xF0\x7E\xF0\x80\xF0\xFC\xF1\x40\xF9\xFC"),
2496 { 0xE000, 0xE03E, 0xE03F, 0xE0BB, 0xE0BC, 0xE757 },
2502 RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR
},
2505 { RTL_TEXTENCODING_MS_1258
,
2506 RTL_CONSTASCII_STRINGPARAM(
2507 "\xC0\x41\xDE\xE3\xD2\xD4\xEC\xFD\xF2"),
2508 { 0x00C0, 0x0041, 0x0303, 0x0103, 0x0309, 0x00D4, 0x0301, 0x01B0,
2515 RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR
},
2516 { RTL_TEXTENCODING_MS_1258
,
2517 RTL_CONSTASCII_STRINGPARAM(
2518 "\xC0\x41\xDE\xE3\xD2\xD4\xEC\xFD\xF2"),
2519 { 0x00C0, 0x00C3, 0x1EB3, 0x1ED0, 0x1EF1 },
2525 RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR
},
2526 #if WITH_LOCALE_ALL || WITH_LOCALE_FOR_SCRIPT_Deva
2527 { RTL_TEXTENCODING_ISCII_DEVANAGARI
,
2528 RTL_CONSTASCII_STRINGPARAM(
2529 "\xD7\xE6\x20\xD4\xCF\xE8\xD6\x20"
2530 "\xC8\xD8\xD1\xE1\x20\xB3\xCA\xDC"
2531 "\xCF\xC4\xDA\xD7\x20\xD8\xDB\xA2"
2532 "\xC4\xDE\x20\xB1\xCF\x20\xCC\xDD"
2533 "\xD7\xD1\xCC\xDA\xC6\x20\xC4\xE5"
2534 "\xC6\xE5\xA2\x20\xB3\xE1\x20\xB3"
2535 "\xBD\xE8\xBD\xCF\xC8\xC6\x20\xB3"
2536 "\xE5\x20\xC9\xBD\xB3\xDA\xCF\x20"
2537 "\xB8\xDD\xB3\xE1\x20\xC3\xE1\x20"
2539 { 0x0938, 0x094C, 0x0020, 0x0935, 0x0930, 0x094D, 0x0937, 0x0020,
2540 0x092A, 0x0939, 0x0932, 0x0947, 0x0020, 0x0915, 0x092C, 0x0940,
2541 0x0930, 0x0926, 0x093E, 0x0938, 0x0020, 0x0939, 0x093F, 0x0902,
2542 0x0926, 0x0942, 0x0020, 0x0914, 0x0930, 0x0020, 0x092E, 0x0941,
2543 0x0938, 0x0932, 0x092E, 0x093E, 0x0928, 0x0020, 0x0926, 0x094B,
2544 0x0928, 0x094B, 0x0902, 0x0020, 0x0915, 0x0947, 0x0020, 0x0915,
2545 0x091F, 0x094D, 0x091F, 0x0930, 0x092A, 0x0928, 0x0020, 0x0915,
2546 0x094B, 0x0020, 0x092B, 0x091F, 0x0915, 0x093E, 0x0930, 0x0020,
2547 0x091A, 0x0941, 0x0915, 0x0947, 0x0020, 0x0925, 0x0947, 0x0020,
2554 RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR
},
2555 { RTL_TEXTENCODING_ISCII_DEVANAGARI
,
2556 RTL_CONSTASCII_STRINGPARAM("\xE8\xE8\xE8\xE9\xA1\xE9\xEA\xE9"),
2557 { 0x094D, 0x200C, 0x094D, 0x200D, 0x0950, 0x93D },
2563 RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR
}
2566 for (std::size_t i
= 0; i
< SAL_N_ELEMENTS(data
); ++i
) {
2567 doComplexCharSetTest(data
[i
]);
2571 void Test::testComplexCut() {
2572 static ComplexCharSetTest
const data
[]
2574 #if WITH_LOCALE_ALL || WITH_LOCALE_ja
2575 { RTL_TEXTENCODING_EUC_JP
,
2576 RTL_CONSTASCII_STRINGPARAM("\xA1"),
2583 RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR
},
2584 { RTL_TEXTENCODING_EUC_JP
,
2585 RTL_CONSTASCII_STRINGPARAM("\x8E"),
2592 RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR
},
2593 { RTL_TEXTENCODING_EUC_JP
,
2594 RTL_CONSTASCII_STRINGPARAM("\x8F"),
2601 RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR
},
2602 { RTL_TEXTENCODING_EUC_JP
,
2603 RTL_CONSTASCII_STRINGPARAM("\x8F\xA1"),
2610 RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR
},
2612 #if WITH_LOCALE_ALL || WITH_LOCALE_zh
2613 { RTL_TEXTENCODING_EUC_CN
,
2614 RTL_CONSTASCII_STRINGPARAM("\xA1"),
2621 RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR
},
2624 { RTL_TEXTENCODING_EUC_TW,
2625 RTL_CONSTASCII_STRINGPARAM("\xA1"),
2632 RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
2633 { RTL_TEXTENCODING_EUC_TW,
2634 RTL_CONSTASCII_STRINGPARAM("\x8E"),
2641 RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
2642 { RTL_TEXTENCODING_EUC_TW,
2643 RTL_CONSTASCII_STRINGPARAM("\x8E\xA1"),
2650 RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
2651 { RTL_TEXTENCODING_EUC_TW,
2652 RTL_CONSTASCII_STRINGPARAM("\x8E\xA1\xA1"),
2659 RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR } */ };
2660 for (std::size_t i
= 0; i
< SAL_N_ELEMENTS(data
); ++i
) {
2661 doComplexCharSetCutTest(data
[i
]);
2665 void Test::testSRCBUFFERTOSMALL() {
2666 rtl_TextToUnicodeConverter cv
= rtl_createTextToUnicodeConverter(
2667 RTL_TEXTENCODING_EUC_JP
);
2668 CPPUNIT_ASSERT_MESSAGE("rtl_createTextToUnicodeConverter(EUC-JP) failed",
2670 rtl_TextToUnicodeContext cx
= rtl_createTextToUnicodeContext(cv
);
2671 CPPUNIT_ASSERT_MESSAGE("rtl_createTextToUnicodeContext failed", cx
!= NULL
);
2673 sal_Unicode dst
[10];
2676 CPPUNIT_ASSERT_EQUAL(
2678 rtl_convertTextToUnicode(
2679 cv
, cx
, &src
, 1, dst
, sizeof dst
/ sizeof (sal_Unicode
),
2680 (RTL_TEXTTOUNICODE_FLAGS_UNDEFINED_ERROR
|
2681 RTL_TEXTTOUNICODE_FLAGS_MBUNDEFINED_ERROR
|
2682 RTL_TEXTTOUNICODE_FLAGS_INVALID_ERROR
),
2684 CPPUNIT_ASSERT_EQUAL(RTL_TEXTTOUNICODE_INFO_SRCBUFFERTOSMALL
, info
);
2685 CPPUNIT_ASSERT(cvt
<= 1);
2686 rtl_destroyTextToUnicodeContext(cv
, cx
);
2687 rtl_destroyTextToUnicodeConverter(cv
);
2690 void Test::testMime() {
2693 rtl_TextEncoding encoding
;
2696 static Data
const data
[] = {
2697 { "GBK", RTL_TEXTENCODING_GBK
, false },
2698 { "CP936", RTL_TEXTENCODING_GBK
, false },
2699 { "MS936", RTL_TEXTENCODING_GBK
, false },
2700 { "windows-936", RTL_TEXTENCODING_GBK
, false },
2702 { "GB18030", RTL_TEXTENCODING_GB_18030
, false },
2704 { "TIS-620", RTL_TEXTENCODING_TIS_620
, true },
2705 { "ISO-8859-11", RTL_TEXTENCODING_TIS_620
, false }, // not registered
2707 { "CP874", RTL_TEXTENCODING_MS_874
, false }, // not registered
2708 { "MS874", RTL_TEXTENCODING_MS_874
, false }, // not registered
2709 { "windows-874", RTL_TEXTENCODING_MS_874
, true }, // not registered
2711 { "ISO_8859-8:1988", RTL_TEXTENCODING_ISO_8859_8
, false },
2712 { "iso-ir-138", RTL_TEXTENCODING_ISO_8859_8
, false },
2713 { "ISO_8859-8", RTL_TEXTENCODING_ISO_8859_8
, false },
2714 { "ISO-8859-8", RTL_TEXTENCODING_ISO_8859_8
, true },
2715 { "hebrew", RTL_TEXTENCODING_ISO_8859_8
, false },
2716 { "csISOLatinHebrew", RTL_TEXTENCODING_ISO_8859_8
, false },
2718 { "windows-1255", RTL_TEXTENCODING_MS_1255
, true },
2720 { "IBM862", RTL_TEXTENCODING_IBM_862
, true },
2721 { "cp862", RTL_TEXTENCODING_IBM_862
, false },
2722 { "862", RTL_TEXTENCODING_IBM_862
, false },
2723 { "csPC862LatinHebrew", RTL_TEXTENCODING_IBM_862
, false },
2725 { "ISO_8859-6:1987", RTL_TEXTENCODING_ISO_8859_6
, false },
2726 { "iso-ir-127", RTL_TEXTENCODING_ISO_8859_6
, false },
2727 { "ISO_8859-6", RTL_TEXTENCODING_ISO_8859_6
, false },
2728 { "ISO-8859-6", RTL_TEXTENCODING_ISO_8859_6
, true },
2729 { "ECMA-114", RTL_TEXTENCODING_ISO_8859_6
, false },
2730 { "ASMO-708", RTL_TEXTENCODING_ISO_8859_6
, false },
2731 { "arabic", RTL_TEXTENCODING_ISO_8859_6
, false },
2732 { "csISOLatinArabic", RTL_TEXTENCODING_ISO_8859_6
, false },
2734 { "windows-1256", RTL_TEXTENCODING_MS_1256
, true },
2736 { "IBM864", RTL_TEXTENCODING_IBM_864
, true },
2737 { "cp864", RTL_TEXTENCODING_IBM_864
, false },
2738 { "csIBM864", RTL_TEXTENCODING_IBM_864
, false },
2740 { "KOI8-R", RTL_TEXTENCODING_KOI8_R
, false },
2741 { "csKOI8R", RTL_TEXTENCODING_KOI8_R
, false },
2742 { "koi8-r", RTL_TEXTENCODING_KOI8_R
, true },
2744 { "KOI8-U", RTL_TEXTENCODING_KOI8_U
, true },
2746 { "IBM860", RTL_TEXTENCODING_IBM_860
, true },
2747 { "cp860", RTL_TEXTENCODING_IBM_860
, false },
2748 { "860", RTL_TEXTENCODING_IBM_860
, false },
2749 { "csIBM860", RTL_TEXTENCODING_IBM_860
, false },
2751 { "IBM861", RTL_TEXTENCODING_IBM_861
, true },
2752 { "cp861", RTL_TEXTENCODING_IBM_861
, false },
2753 { "861", RTL_TEXTENCODING_IBM_861
, false },
2754 { "cp-is", RTL_TEXTENCODING_IBM_861
, false },
2755 { "csIBM861", RTL_TEXTENCODING_IBM_861
, false },
2757 { "IBM863", RTL_TEXTENCODING_IBM_863
, true },
2758 { "cp863", RTL_TEXTENCODING_IBM_863
, false },
2759 { "863", RTL_TEXTENCODING_IBM_863
, false },
2760 { "csIBM863", RTL_TEXTENCODING_IBM_863
, false },
2762 { "IBM865", RTL_TEXTENCODING_IBM_865
, true },
2763 { "cp865", RTL_TEXTENCODING_IBM_865
, false },
2764 { "865", RTL_TEXTENCODING_IBM_865
, false },
2765 { "csIBM865", RTL_TEXTENCODING_IBM_865
, false },
2767 { "Latin-9", RTL_TEXTENCODING_ISO_8859_15
, false },
2769 { "KS_C_5601-1987", RTL_TEXTENCODING_MS_949
, false },
2770 { "iso-ir-149", RTL_TEXTENCODING_MS_949
, false },
2771 { "KS_C_5601-1989", RTL_TEXTENCODING_MS_949
, false },
2772 { "KSC_5601", RTL_TEXTENCODING_MS_949
, false },
2773 { "korean", RTL_TEXTENCODING_MS_949
, false },
2774 { "csKSC56011987", RTL_TEXTENCODING_MS_949
, false },
2775 { 0, RTL_TEXTENCODING_MS_949
, true },
2777 { "Adobe-Standard-Encoding", RTL_TEXTENCODING_ADOBE_STANDARD
, false },
2778 { "csAdobeStandardEncoding", RTL_TEXTENCODING_ADOBE_STANDARD
, false },
2779 { "Adobe-Symbol-Encoding", RTL_TEXTENCODING_ADOBE_SYMBOL
, false },
2780 { "csHPPSMath", RTL_TEXTENCODING_ADOBE_SYMBOL
, false },
2782 { "PTCP154", RTL_TEXTENCODING_PT154
, true },
2783 { "csPTCP154", RTL_TEXTENCODING_PT154
, false },
2784 { "PT154", RTL_TEXTENCODING_PT154
, false },
2785 { "CP154", RTL_TEXTENCODING_PT154
, false },
2786 { "Cyrillic-Asian", RTL_TEXTENCODING_PT154
, false }
2788 for (std::size_t i
= 0; i
< SAL_N_ELEMENTS(data
); ++i
) {
2789 if (data
[i
].mime
== 0) {
2790 OSL_ASSERT(data
[i
].reverse
);
2791 CPPUNIT_ASSERT_EQUAL(
2792 static_cast< char const * >(0),
2793 rtl_getMimeCharsetFromTextEncoding(data
[i
].encoding
));
2795 CPPUNIT_ASSERT_EQUAL(
2797 rtl_getTextEncodingFromMimeCharset(data
[i
].mime
));
2798 if (data
[i
].reverse
) {
2799 CPPUNIT_ASSERT_EQUAL(
2800 OString(data
[i
].mime
),
2802 rtl_getMimeCharsetFromTextEncoding(data
[i
].encoding
)));
2808 void Test::testWindows() {
2810 sal_uInt32 codePage
;
2811 rtl_TextEncoding encoding
;
2814 static Data
const data
[] = {
2815 { 437, RTL_TEXTENCODING_IBM_437
, true },
2816 { 708, RTL_TEXTENCODING_ISO_8859_6
, false },
2817 { 737, RTL_TEXTENCODING_IBM_737
, true },
2818 { 775, RTL_TEXTENCODING_IBM_775
, true },
2819 { 850, RTL_TEXTENCODING_IBM_850
, true },
2820 { 852, RTL_TEXTENCODING_IBM_852
, true },
2821 { 855, RTL_TEXTENCODING_IBM_855
, true },
2822 { 857, RTL_TEXTENCODING_IBM_857
, true },
2823 { 860, RTL_TEXTENCODING_IBM_860
, true },
2824 { 861, RTL_TEXTENCODING_IBM_861
, true },
2825 { 862, RTL_TEXTENCODING_IBM_862
, true },
2826 { 863, RTL_TEXTENCODING_IBM_863
, true },
2827 { 864, RTL_TEXTENCODING_IBM_864
, true },
2828 { 865, RTL_TEXTENCODING_IBM_865
, true },
2829 { 866, RTL_TEXTENCODING_IBM_866
, true },
2830 { 869, RTL_TEXTENCODING_IBM_869
, true },
2831 { 874, RTL_TEXTENCODING_MS_874
, true },
2832 { 932, RTL_TEXTENCODING_MS_932
, true },
2833 { 936, RTL_TEXTENCODING_MS_936
, true },
2834 { 949, RTL_TEXTENCODING_MS_949
, true },
2835 { 950, RTL_TEXTENCODING_MS_950
, true },
2836 { 1250, RTL_TEXTENCODING_MS_1250
, true },
2837 { 1251, RTL_TEXTENCODING_MS_1251
, true },
2838 { 1252, RTL_TEXTENCODING_MS_1252
, true },
2839 { 1253, RTL_TEXTENCODING_MS_1253
, true },
2840 { 1254, RTL_TEXTENCODING_MS_1254
, true },
2841 { 1255, RTL_TEXTENCODING_MS_1255
, true },
2842 { 1256, RTL_TEXTENCODING_MS_1256
, true },
2843 { 1257, RTL_TEXTENCODING_MS_1257
, true },
2844 { 1258, RTL_TEXTENCODING_MS_1258
, true },
2845 { 1361, RTL_TEXTENCODING_MS_1361
, true },
2846 { 10000, RTL_TEXTENCODING_APPLE_ROMAN
, true },
2847 { 10001, RTL_TEXTENCODING_APPLE_JAPANESE
, true },
2848 { 10002, RTL_TEXTENCODING_APPLE_CHINTRAD
, true },
2849 { 10003, RTL_TEXTENCODING_APPLE_KOREAN
, true },
2850 { 10004, RTL_TEXTENCODING_APPLE_ARABIC
, true },
2851 { 10005, RTL_TEXTENCODING_APPLE_HEBREW
, true },
2852 { 10006, RTL_TEXTENCODING_APPLE_GREEK
, true },
2853 { 10007, RTL_TEXTENCODING_APPLE_CYRILLIC
, true },
2854 { 10008, RTL_TEXTENCODING_APPLE_CHINSIMP
, true },
2855 { 10010, RTL_TEXTENCODING_APPLE_ROMANIAN
, true },
2856 { 10017, RTL_TEXTENCODING_APPLE_UKRAINIAN
, true },
2857 { 10029, RTL_TEXTENCODING_APPLE_CENTEURO
, true },
2858 { 10079, RTL_TEXTENCODING_APPLE_ICELAND
, true },
2859 { 10081, RTL_TEXTENCODING_APPLE_TURKISH
, true },
2860 { 10082, RTL_TEXTENCODING_APPLE_CROATIAN
, true },
2861 { 20127, RTL_TEXTENCODING_ASCII_US
, true },
2862 { 20866, RTL_TEXTENCODING_KOI8_R
, true },
2863 { 21866, RTL_TEXTENCODING_KOI8_U
, true },
2864 { 28591, RTL_TEXTENCODING_ISO_8859_1
, true },
2865 { 28592, RTL_TEXTENCODING_ISO_8859_2
, true },
2866 { 28593, RTL_TEXTENCODING_ISO_8859_3
, true },
2867 { 28594, RTL_TEXTENCODING_ISO_8859_4
, true },
2868 { 28595, RTL_TEXTENCODING_ISO_8859_5
, true },
2869 { 28596, RTL_TEXTENCODING_ISO_8859_6
, true },
2870 { 28597, RTL_TEXTENCODING_ISO_8859_7
, true },
2871 { 28598, RTL_TEXTENCODING_ISO_8859_8
, true },
2872 { 28599, RTL_TEXTENCODING_ISO_8859_9
, true },
2873 { 28605, RTL_TEXTENCODING_ISO_8859_15
, true },
2874 { 50220, RTL_TEXTENCODING_ISO_2022_JP
, true },
2875 { 50225, RTL_TEXTENCODING_ISO_2022_KR
, true },
2876 { 51932, RTL_TEXTENCODING_EUC_JP
, true },
2877 { 51936, RTL_TEXTENCODING_EUC_CN
, true },
2878 { 51949, RTL_TEXTENCODING_EUC_KR
, true },
2879 { 65000, RTL_TEXTENCODING_UTF7
, true },
2880 { 65001, RTL_TEXTENCODING_UTF8
, true },
2881 { 1200, RTL_TEXTENCODING_DONTKNOW
, false }, // UTF_16LE
2882 { 1201, RTL_TEXTENCODING_DONTKNOW
, false }, // UTF_16LE
2883 { 0, RTL_TEXTENCODING_DONTKNOW
, true },
2884 { 0, RTL_TEXTENCODING_UCS4
, true },
2885 { 0, RTL_TEXTENCODING_UCS2
, true },
2886 { 57002, RTL_TEXTENCODING_ISCII_DEVANAGARI
, true }
2888 for (std::size_t i
= 0; i
< SAL_N_ELEMENTS(data
); ++i
) {
2889 OSL_ASSERT(data
[i
].codePage
!= 0 || data
[i
].reverse
);
2890 if (data
[i
].codePage
!= 0) {
2891 CPPUNIT_ASSERT_EQUAL(
2893 rtl_getTextEncodingFromWindowsCodePage(data
[i
].codePage
));
2895 if (data
[i
].reverse
) {
2896 CPPUNIT_ASSERT_EQUAL(
2898 rtl_getWindowsCodePageFromTextEncoding(data
[i
].encoding
));
2903 void Test::testInfo() {
2905 rtl_TextEncoding encoding
;
2909 static Data
const data
[] = {
2910 #if WITH_LOCALE_ALL || WITH_LOCALE_ja
2911 { RTL_TEXTENCODING_APPLE_JAPANESE
, RTL_TEXTENCODING_INFO_ASCII
, false },
2912 { RTL_TEXTENCODING_EUC_JP
, RTL_TEXTENCODING_INFO_ASCII
, true },
2913 { RTL_TEXTENCODING_ISO_2022_JP
, RTL_TEXTENCODING_INFO_CONTEXT
, true },
2914 { RTL_TEXTENCODING_ISO_2022_JP
, RTL_TEXTENCODING_INFO_ASCII
, false },
2915 { RTL_TEXTENCODING_SHIFT_JIS
, RTL_TEXTENCODING_INFO_ASCII
, false },
2917 #if WITH_LOCALE_ALL || WITH_LOCALE_ko
2918 { RTL_TEXTENCODING_APPLE_KOREAN
, RTL_TEXTENCODING_INFO_ASCII
, false },
2919 { RTL_TEXTENCODING_EUC_KR
, RTL_TEXTENCODING_INFO_ASCII
, true },
2920 { RTL_TEXTENCODING_ISO_2022_KR
, RTL_TEXTENCODING_INFO_CONTEXT
, true },
2921 { RTL_TEXTENCODING_ISO_2022_KR
, RTL_TEXTENCODING_INFO_ASCII
, false },
2923 #if WITH_LOCALE_ALL || WITH_LOCALE_zh
2924 { RTL_TEXTENCODING_APPLE_CHINTRAD
, RTL_TEXTENCODING_INFO_ASCII
, false },
2925 { RTL_TEXTENCODING_BIG5
, RTL_TEXTENCODING_INFO_ASCII
, false },
2926 { RTL_TEXTENCODING_BIG5_HKSCS
, RTL_TEXTENCODING_INFO_ASCII
, false },
2927 { RTL_TEXTENCODING_EUC_CN
, RTL_TEXTENCODING_INFO_ASCII
, true },
2928 { RTL_TEXTENCODING_EUC_TW
, RTL_TEXTENCODING_INFO_ASCII
, true },
2929 { RTL_TEXTENCODING_GBK
, RTL_TEXTENCODING_INFO_ASCII
, false },
2930 { RTL_TEXTENCODING_GB_18030
, RTL_TEXTENCODING_INFO_ASCII
, false },
2931 { RTL_TEXTENCODING_GB_18030
, RTL_TEXTENCODING_INFO_UNICODE
, true },
2932 { RTL_TEXTENCODING_ISO_2022_CN
, RTL_TEXTENCODING_INFO_CONTEXT
, true },
2933 { RTL_TEXTENCODING_ISO_2022_CN
, RTL_TEXTENCODING_INFO_ASCII
, false },
2935 #if WITH_LOCALE_ALL || WITH_LOCALE_FOR_SCRIPT_Deva
2936 { RTL_TEXTENCODING_ISCII_DEVANAGARI
, RTL_TEXTENCODING_INFO_ASCII
, true },
2937 { RTL_TEXTENCODING_ISCII_DEVANAGARI
, RTL_TEXTENCODING_INFO_MIME
, false },
2939 { RTL_TEXTENCODING_MS_1361
, RTL_TEXTENCODING_INFO_ASCII
, false },
2940 { RTL_TEXTENCODING_MS_874
, RTL_TEXTENCODING_INFO_ASCII
, true },
2941 { RTL_TEXTENCODING_MS_932
, RTL_TEXTENCODING_INFO_ASCII
, false },
2942 { RTL_TEXTENCODING_MS_936
, RTL_TEXTENCODING_INFO_ASCII
, false },
2943 { RTL_TEXTENCODING_MS_949
, RTL_TEXTENCODING_INFO_ASCII
, false },
2944 { RTL_TEXTENCODING_MS_950
, RTL_TEXTENCODING_INFO_ASCII
, false },
2945 { RTL_TEXTENCODING_KOI8_R
, RTL_TEXTENCODING_INFO_ASCII
, true },
2946 { RTL_TEXTENCODING_KOI8_R
, RTL_TEXTENCODING_INFO_MIME
, true },
2947 { RTL_TEXTENCODING_KOI8_U
, RTL_TEXTENCODING_INFO_ASCII
, true },
2948 { RTL_TEXTENCODING_KOI8_U
, RTL_TEXTENCODING_INFO_MIME
, true },
2949 { RTL_TEXTENCODING_IBM_860
, RTL_TEXTENCODING_INFO_MIME
, true },
2950 { RTL_TEXTENCODING_IBM_861
, RTL_TEXTENCODING_INFO_MIME
, true },
2951 { RTL_TEXTENCODING_IBM_863
, RTL_TEXTENCODING_INFO_MIME
, true },
2952 { RTL_TEXTENCODING_IBM_865
, RTL_TEXTENCODING_INFO_MIME
, true },
2953 { RTL_TEXTENCODING_ADOBE_STANDARD
, RTL_TEXTENCODING_INFO_ASCII
, false },
2954 { RTL_TEXTENCODING_ADOBE_STANDARD
, RTL_TEXTENCODING_INFO_MIME
, true },
2955 { RTL_TEXTENCODING_ADOBE_STANDARD
, RTL_TEXTENCODING_INFO_SYMBOL
, false },
2956 { RTL_TEXTENCODING_ADOBE_SYMBOL
, RTL_TEXTENCODING_INFO_ASCII
, false },
2957 { RTL_TEXTENCODING_ADOBE_SYMBOL
, RTL_TEXTENCODING_INFO_MIME
, true },
2958 { RTL_TEXTENCODING_ADOBE_SYMBOL
, RTL_TEXTENCODING_INFO_SYMBOL
, true },
2959 { RTL_TEXTENCODING_PT154
, RTL_TEXTENCODING_INFO_ASCII
, true },
2960 { RTL_TEXTENCODING_PT154
, RTL_TEXTENCODING_INFO_MIME
, true }
2962 for (std::size_t i
= 0; i
< SAL_N_ELEMENTS(data
); ++i
) {
2963 rtl_TextEncodingInfo info
;
2964 info
.StructSize
= sizeof info
;
2965 CPPUNIT_ASSERT(rtl_getTextEncodingInfo(data
[i
].encoding
, &info
));
2966 CPPUNIT_ASSERT_EQUAL(data
[i
].value
, ((info
.Flags
& data
[i
].flag
) != 0));
2970 CPPUNIT_TEST_SUITE_REGISTRATION(Test
);
2974 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */