1 /************************************************************************* 2 * 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4 * 5 * Copyright 2000, 2010 Oracle and/or its affiliates. 6 * 7 * OpenOffice.org - a multi-platform office productivity suite 8 * 9 * This file is part of OpenOffice.org. 10 * 11 * OpenOffice.org is free software: you can redistribute it and/or modify 12 * it under the terms of the GNU Lesser General Public License version 3 13 * only, as published by the Free Software Foundation. 14 * 15 * OpenOffice.org is distributed in the hope that it will be useful, 16 * but WITHOUT ANY WARRANTY; without even the implied warranty of 17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 18 * GNU Lesser General Public License version 3 for more details 19 * (a copy is included in the LICENSE file that accompanied this code). 20 * 21 * You should have received a copy of the GNU Lesser General Public License 22 * version 3 along with OpenOffice.org. If not, see 23 * <http://www.openoffice.org/license.html> 24 * for a copy of the LGPLv3 License. 25 * 26 ************************************************************************/ 27 28 // MARKER(update_precomp.py): autogen include statement, do not remove 29 #include "precompiled_sal.hxx" 30 31 #include "sal/config.h" 32 33 #include <cstddef> 34 #include <cstring> 35 36 #include "testshl/simpleheader.hxx" 37 #include "rtl/string.hxx" 38 #include "rtl/tencinfo.h" 39 #include "rtl/textcvt.h" 40 #include "rtl/textenc.h" 41 #include "sal/types.h" 42 43 namespace { 44 45 struct SingleByteCharSet { 46 rtl_TextEncoding m_nEncoding; 47 sal_Unicode m_aMap[256]; 48 }; 49 50 void testSingleByteCharSet(SingleByteCharSet const & rSet) { 51 sal_Char aText[256]; 52 sal_Unicode aUnicode[256]; 53 sal_Size nNumber = 0; 54 for (int i = 0; i < 256; ++i) { 55 if (rSet.m_aMap[i] != 0xFFFF) { 56 aText[nNumber++] = static_cast< sal_Char >(i); 57 } 58 } 59 { 60 rtl_TextToUnicodeConverter aConverter 61 = rtl_createTextToUnicodeConverter(rSet.m_nEncoding); 62 rtl_TextToUnicodeContext aContext 63 = rtl_createTextToUnicodeContext(aConverter); 64 CPPUNIT_ASSERT_MESSAGE("failure #1", aConverter && aContext); 65 sal_Size nSize; 66 sal_uInt32 nInfo; 67 sal_Size nConverted; 68 nSize = rtl_convertTextToUnicode( 69 aConverter, aContext, aText, nNumber, aUnicode, nNumber, 70 (RTL_TEXTTOUNICODE_FLAGS_UNDEFINED_ERROR 71 | RTL_TEXTTOUNICODE_FLAGS_MBUNDEFINED_ERROR 72 | RTL_TEXTTOUNICODE_FLAGS_INVALID_ERROR), 73 &nInfo, &nConverted); 74 CPPUNIT_ASSERT_MESSAGE( 75 "failure #2", 76 nSize == nNumber && nInfo == 0 && nConverted == nNumber); 77 rtl_destroyTextToUnicodeContext(aConverter, aContext); 78 rtl_destroyTextToUnicodeConverter(aConverter); 79 } 80 { 81 bool bSuccess = true; 82 int j = 0; 83 for (int i = 0; i < 256; ++i) { 84 if (rSet.m_aMap[i] != 0xFFFF && aUnicode[j++] != rSet.m_aMap[i]) { 85 bSuccess = false; 86 break; 87 } 88 } 89 CPPUNIT_ASSERT_MESSAGE("failure #3", bSuccess); 90 } 91 if (rSet.m_nEncoding == RTL_TEXTENCODING_ASCII_US) { 92 nNumber = 128; 93 } 94 { 95 rtl_UnicodeToTextConverter aConverter 96 = rtl_createUnicodeToTextConverter(rSet.m_nEncoding); 97 rtl_UnicodeToTextContext aContext 98 = rtl_createUnicodeToTextContext(aConverter); 99 CPPUNIT_ASSERT_MESSAGE("failure #4", aConverter && aContext); 100 sal_Size nSize; 101 sal_uInt32 nInfo; 102 sal_Size nConverted; 103 nSize = rtl_convertUnicodeToText( 104 aConverter, aContext, aUnicode, nNumber, aText, nNumber, 105 (RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR 106 | RTL_UNICODETOTEXT_FLAGS_INVALID_ERROR), 107 &nInfo, &nConverted); 108 CPPUNIT_ASSERT_MESSAGE( 109 "failure #5", 110 nSize == nNumber && nInfo == 0 && nConverted == nNumber); 111 rtl_destroyUnicodeToTextContext(aConverter, aContext); 112 rtl_destroyUnicodeToTextConverter(aConverter); 113 } 114 { 115 bool bSuccess = true; 116 int j = 0; 117 for (int i = 0; i < 256; ++i) { 118 if (rSet.m_aMap[i] != 0xFFFF 119 && aText[j++] != static_cast< sal_Char >(i)) 120 { 121 bSuccess = false; 122 break; 123 } 124 } 125 CPPUNIT_ASSERT_MESSAGE("failure #6", bSuccess); 126 } 127 for (int i = 0; i < 256; ++i) { 128 if (rSet.m_aMap[i] == 0xFFFF) { 129 aText[0] = static_cast< sal_Char >(i); 130 rtl_TextToUnicodeConverter aConverter 131 = rtl_createTextToUnicodeConverter(rSet.m_nEncoding); 132 rtl_TextToUnicodeContext aContext 133 = rtl_createTextToUnicodeContext(aConverter); 134 CPPUNIT_ASSERT_MESSAGE("failure #7", aConverter && aContext); 135 sal_Size nSize; 136 sal_uInt32 nInfo; 137 sal_Size nConverted; 138 nSize = rtl_convertTextToUnicode( 139 aConverter, aContext, aText, 1, aUnicode, 1, 140 (RTL_TEXTTOUNICODE_FLAGS_UNDEFINED_ERROR 141 | RTL_TEXTTOUNICODE_FLAGS_MBUNDEFINED_ERROR 142 | RTL_TEXTTOUNICODE_FLAGS_INVALID_ERROR), 143 &nInfo, &nConverted); 144 CPPUNIT_ASSERT_MESSAGE( 145 "failure #9", 146 (nSize == 0 147 && (nInfo 148 == (RTL_TEXTTOUNICODE_INFO_ERROR 149 | RTL_TEXTTOUNICODE_INFO_UNDEFINED)) 150 && nConverted == 0)); 151 rtl_destroyTextToUnicodeContext(aConverter, aContext); 152 rtl_destroyTextToUnicodeConverter(aConverter); 153 } 154 } 155 } 156 157 int const TEST_STRING_SIZE = 1000; 158 159 struct ComplexCharSetTest { 160 rtl_TextEncoding m_nEncoding; 161 char const * m_pText; 162 sal_Size m_nTextSize; 163 sal_Unicode m_aUnicode[TEST_STRING_SIZE]; 164 sal_Size m_nUnicodeSize; 165 bool m_bNoContext; 166 bool m_bForward; 167 bool m_bReverse; 168 bool m_bGlobalSignature; 169 sal_uInt32 m_nReverseUndefined; 170 }; 171 172 void doComplexCharSetTest(ComplexCharSetTest const & rTest) { 173 if (rTest.m_bForward) { 174 sal_Unicode aUnicode[TEST_STRING_SIZE]; 175 rtl_TextToUnicodeConverter aConverter 176 = rtl_createTextToUnicodeConverter(rTest.m_nEncoding); 177 rtl_TextToUnicodeContext aContext 178 = rtl_createTextToUnicodeContext(aConverter); 179 CPPUNIT_ASSERT_MESSAGE("failure #10", aConverter && aContext); 180 sal_Size nSize; 181 sal_uInt32 nInfo; 182 sal_Size nConverted; 183 nSize = rtl_convertTextToUnicode( 184 aConverter, aContext, 185 reinterpret_cast< sal_Char const * >(rTest.m_pText), 186 rTest.m_nTextSize, aUnicode, TEST_STRING_SIZE, 187 (RTL_TEXTTOUNICODE_FLAGS_UNDEFINED_ERROR 188 | RTL_TEXTTOUNICODE_FLAGS_MBUNDEFINED_ERROR 189 | RTL_TEXTTOUNICODE_FLAGS_INVALID_ERROR 190 | RTL_TEXTTOUNICODE_FLAGS_FLUSH 191 | (rTest.m_bGlobalSignature ? 192 RTL_TEXTTOUNICODE_FLAGS_GLOBAL_SIGNATURE : 0)), 193 &nInfo, &nConverted); 194 CPPUNIT_ASSERT_MESSAGE( 195 "failure #11", 196 (nSize == rTest.m_nUnicodeSize && nInfo == 0 197 && nConverted == rTest.m_nTextSize)); 198 rtl_destroyTextToUnicodeContext(aConverter, aContext); 199 rtl_destroyTextToUnicodeConverter(aConverter); 200 bool bSuccess = true; 201 for (sal_Size i = 0; i < rTest.m_nUnicodeSize; ++i) { 202 if (aUnicode[i] != rTest.m_aUnicode[i]) { 203 bSuccess = false; 204 break; 205 } 206 } 207 CPPUNIT_ASSERT_MESSAGE("failure #12", bSuccess); 208 } 209 if (rTest.m_bForward) { 210 sal_Unicode aUnicode[TEST_STRING_SIZE]; 211 rtl_TextToUnicodeConverter aConverter 212 = rtl_createTextToUnicodeConverter(rTest.m_nEncoding); 213 rtl_TextToUnicodeContext aContext 214 = rtl_createTextToUnicodeContext(aConverter); 215 CPPUNIT_ASSERT_MESSAGE("failure #13", aConverter && aContext); 216 if (aContext != (rtl_TextToUnicodeContext) 1) { 217 sal_Size nInput = 0; 218 sal_Size nOutput = 0; 219 for (bool bFlush = true; nInput < rTest.m_nTextSize || bFlush;) { 220 sal_Size nSrcBytes = 1; 221 sal_uInt32 nFlags 222 = (RTL_TEXTTOUNICODE_FLAGS_UNDEFINED_ERROR 223 | RTL_TEXTTOUNICODE_FLAGS_MBUNDEFINED_ERROR 224 | RTL_TEXTTOUNICODE_FLAGS_INVALID_ERROR 225 | (rTest.m_bGlobalSignature ? 226 RTL_TEXTTOUNICODE_FLAGS_GLOBAL_SIGNATURE : 0)); 227 if (nInput >= rTest.m_nTextSize) { 228 nSrcBytes = 0; 229 nFlags |= RTL_TEXTTOUNICODE_FLAGS_FLUSH; 230 bFlush = false; 231 } 232 sal_uInt32 nInfo; 233 sal_Size nConverted; 234 sal_Size nSize = rtl_convertTextToUnicode( 235 aConverter, aContext, 236 reinterpret_cast< sal_Char const * >(rTest.m_pText + nInput), 237 nSrcBytes, aUnicode + nOutput, TEST_STRING_SIZE - nOutput, 238 nFlags, &nInfo, &nConverted); 239 nOutput += nSize; 240 nInput += nConverted; 241 CPPUNIT_ASSERT_MESSAGE( 242 "failure #14", 243 (nInfo & ~RTL_TEXTTOUNICODE_INFO_SRCBUFFERTOSMALL) == 0); 244 } 245 CPPUNIT_ASSERT_MESSAGE( 246 "failure #15", 247 nOutput == rTest.m_nUnicodeSize && nInput == rTest.m_nTextSize); 248 bool bSuccess = true; 249 for (sal_Size i = 0; i < rTest.m_nUnicodeSize; ++i) { 250 if (aUnicode[i] != rTest.m_aUnicode[i]) { 251 bSuccess = false; 252 break; 253 } 254 } 255 CPPUNIT_ASSERT_MESSAGE("failure #16", bSuccess); 256 } 257 rtl_destroyTextToUnicodeContext(aConverter, aContext); 258 rtl_destroyTextToUnicodeConverter(aConverter); 259 } 260 if (rTest.m_bNoContext && rTest.m_bForward) { 261 sal_Unicode aUnicode[TEST_STRING_SIZE]; 262 int nSize = 0; 263 rtl_TextToUnicodeConverter aConverter 264 = rtl_createTextToUnicodeConverter(rTest.m_nEncoding); 265 CPPUNIT_ASSERT_MESSAGE("failure #17", aConverter); 266 for (sal_Size i = 0;;) { 267 if (i == rTest.m_nTextSize) { 268 goto done; 269 } 270 sal_Char c1 = rTest.m_pText[i++]; 271 sal_Unicode aUC[2]; 272 sal_uInt32 nInfo = 0; 273 sal_Size nCvtBytes; 274 sal_Size nChars = rtl_convertTextToUnicode( 275 aConverter, 0, &c1, 1, aUC, 2, 276 (RTL_TEXTTOUNICODE_FLAGS_UNDEFINED_ERROR 277 | RTL_TEXTTOUNICODE_FLAGS_MBUNDEFINED_ERROR 278 | RTL_TEXTTOUNICODE_FLAGS_INVALID_ERROR 279 | (rTest.m_bGlobalSignature ? 280 RTL_TEXTTOUNICODE_FLAGS_GLOBAL_SIGNATURE : 0)), 281 &nInfo, &nCvtBytes); 282 if ((nInfo & RTL_TEXTTOUNICODE_INFO_SRCBUFFERTOSMALL) != 0) { 283 sal_Char sBuffer[10]; 284 sBuffer[0] = c1; 285 sal_uInt16 nLen = 1; 286 while ((nInfo & RTL_TEXTTOUNICODE_INFO_SRCBUFFERTOSMALL) != 0 287 && nLen < 10) 288 { 289 if (i == rTest.m_nTextSize) { 290 goto done; 291 } 292 c1 = rTest.m_pText[i++]; 293 sBuffer[nLen++] = c1; 294 nChars = rtl_convertTextToUnicode( 295 aConverter, 0, sBuffer, nLen, aUC, 2, 296 (RTL_TEXTTOUNICODE_FLAGS_UNDEFINED_ERROR 297 | RTL_TEXTTOUNICODE_FLAGS_MBUNDEFINED_ERROR 298 | RTL_TEXTTOUNICODE_FLAGS_INVALID_ERROR 299 | (rTest.m_bGlobalSignature ? 300 RTL_TEXTTOUNICODE_FLAGS_GLOBAL_SIGNATURE : 0)), 301 &nInfo, &nCvtBytes); 302 } 303 if (nChars == 1 && nInfo == 0) { 304 OSL_ASSERT(nCvtBytes == nLen); 305 aUnicode[nSize++] = aUC[0]; 306 } else if (nChars == 2 && nInfo == 0) { 307 OSL_ASSERT(nCvtBytes == nLen); 308 aUnicode[nSize++] = aUC[0]; 309 aUnicode[nSize++] = aUC[1]; 310 } else { 311 OSL_ASSERT( 312 (nInfo & RTL_TEXTTOUNICODE_INFO_SRCBUFFERTOSMALL) == 0 313 && nChars == 0 && nInfo != 0); 314 aUnicode[nSize++] = sBuffer[0]; 315 i -= nLen - 1; 316 } 317 } else if (nChars == 1 && nInfo == 0) { 318 OSL_ASSERT(nCvtBytes == 1); 319 aUnicode[nSize++] = aUC[0]; 320 } else if (nChars == 2 && nInfo == 0) { 321 OSL_ASSERT(nCvtBytes == 1); 322 aUnicode[nSize++] = aUC[0]; 323 aUnicode[nSize++] = aUC[1]; 324 } else { 325 OSL_ASSERT(nChars == 0 && nInfo != 0); 326 aUnicode[nSize++] = c1; 327 } 328 } 329 done: 330 rtl_destroyTextToUnicodeConverter(aConverter); 331 bool bSuccess = true; 332 for (sal_Size i = 0; i < rTest.m_nUnicodeSize; ++i) { 333 if (aUnicode[i] != rTest.m_aUnicode[i]) { 334 bSuccess = false; 335 break; 336 } 337 } 338 CPPUNIT_ASSERT_MESSAGE("failure #18", bSuccess); 339 } 340 if (rTest.m_bReverse) { 341 sal_Char aText[TEST_STRING_SIZE]; 342 rtl_UnicodeToTextConverter aConverter 343 = rtl_createUnicodeToTextConverter(rTest.m_nEncoding); 344 rtl_UnicodeToTextContext aContext 345 = rtl_createUnicodeToTextContext(aConverter); 346 CPPUNIT_ASSERT_MESSAGE("failure #19", aConverter && aContext); 347 sal_Size nSize; 348 sal_uInt32 nInfo; 349 sal_Size nConverted; 350 nSize = rtl_convertUnicodeToText( 351 aConverter, aContext, rTest.m_aUnicode, rTest.m_nUnicodeSize, aText, 352 TEST_STRING_SIZE, 353 (rTest.m_nReverseUndefined | RTL_UNICODETOTEXT_FLAGS_INVALID_ERROR 354 | RTL_UNICODETOTEXT_FLAGS_FLUSH 355 | (rTest.m_bGlobalSignature ? 356 RTL_UNICODETOTEXT_FLAGS_GLOBAL_SIGNATURE : 0)), 357 &nInfo, &nConverted); 358 CPPUNIT_ASSERT_MESSAGE( 359 "failure #20", 360 (nSize == rTest.m_nTextSize 361 && (nInfo == 0 362 || (nInfo == RTL_UNICODETOTEXT_INFO_UNDEFINED 363 && (rTest.m_nReverseUndefined 364 != RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR))) 365 && nConverted == rTest.m_nUnicodeSize)); 366 rtl_destroyUnicodeToTextContext(aConverter, aContext); 367 rtl_destroyUnicodeToTextConverter(aConverter); 368 bool bSuccess = true; 369 for (sal_Size i = 0; i < rTest.m_nTextSize; ++i) { 370 if (aText[i] != rTest.m_pText[i]) { 371 bSuccess = false; 372 break; 373 } 374 } 375 CPPUNIT_ASSERT_MESSAGE("failure #21", bSuccess); 376 } 377 } 378 379 void doComplexCharSetCutTest(ComplexCharSetTest const & rTest) { 380 if (rTest.m_bNoContext) { 381 sal_Unicode aUnicode[TEST_STRING_SIZE]; 382 rtl_TextToUnicodeConverter aConverter 383 = rtl_createTextToUnicodeConverter(rTest.m_nEncoding); 384 CPPUNIT_ASSERT_MESSAGE("failure #22", aConverter); 385 sal_Size nSize; 386 sal_uInt32 nInfo; 387 sal_Size nConverted; 388 nSize = rtl_convertTextToUnicode( 389 aConverter, 0, reinterpret_cast< sal_Char const * >(rTest.m_pText), 390 rTest.m_nTextSize, aUnicode, TEST_STRING_SIZE, 391 (RTL_TEXTTOUNICODE_FLAGS_UNDEFINED_ERROR 392 | RTL_TEXTTOUNICODE_FLAGS_MBUNDEFINED_ERROR 393 | RTL_TEXTTOUNICODE_FLAGS_INVALID_ERROR), 394 &nInfo, &nConverted); 395 CPPUNIT_ASSERT_MESSAGE( 396 "failure #23", 397 (nSize <= rTest.m_nUnicodeSize 398 && (nInfo == RTL_TEXTTOUNICODE_INFO_SRCBUFFERTOSMALL 399 || (nInfo 400 == (RTL_TEXTTOUNICODE_INFO_ERROR 401 | RTL_TEXTTOUNICODE_INFO_SRCBUFFERTOSMALL))) 402 && nConverted < rTest.m_nTextSize)); 403 rtl_destroyTextToUnicodeConverter(aConverter); 404 bool bSuccess = true; 405 for (sal_Size i = 0; i < nSize; ++i) { 406 if (aUnicode[i] != rTest.m_aUnicode[i]) { 407 bSuccess = false; 408 break; 409 } 410 } 411 CPPUNIT_ASSERT_MESSAGE("failure #24", bSuccess); 412 } 413 } 414 415 class Test: public CppUnit::TestFixture { 416 public: 417 void testSingleByte(); 418 419 void testComplex(); 420 421 void testComplexCut(); 422 423 void testSRCBUFFERTOSMALL(); 424 425 void testMime(); 426 427 void testWindows(); 428 429 void testInfo(); 430 431 CPPUNIT_TEST_SUITE(Test); 432 CPPUNIT_TEST(testSingleByte); 433 CPPUNIT_TEST(testComplex); 434 CPPUNIT_TEST(testComplexCut); 435 CPPUNIT_TEST(testSRCBUFFERTOSMALL); 436 CPPUNIT_TEST(testMime); 437 CPPUNIT_TEST(testWindows); 438 CPPUNIT_TEST(testInfo); 439 CPPUNIT_TEST_SUITE_END(); 440 }; 441 442 void Test::testSingleByte() { 443 static SingleByteCharSet const data[] 444 = { { RTL_TEXTENCODING_MS_1250, 445 { 0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007, 446 0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F, 447 0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017, 448 0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F, 449 0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027, 450 0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F, 451 0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037, 452 0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F, 453 0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047, 454 0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F, 455 0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057, 456 0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F, 457 0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067, 458 0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F, 459 0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077, 460 0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F, 461 0x20AC,0xFFFF,0x201A,0xFFFF,0x201E,0x2026,0x2020,0x2021, 462 0xFFFF,0x2030,0x0160,0x2039,0x015A,0x0164,0x017D,0x0179, 463 0xFFFF,0x2018,0x2019,0x201C,0x201D,0x2022,0x2013,0x2014, 464 0xFFFF,0x2122,0x0161,0x203A,0x015B,0x0165,0x017E,0x017A, 465 0x00A0,0x02C7,0x02D8,0x0141,0x00A4,0x0104,0x00A6,0x00A7, 466 0x00A8,0x00A9,0x015E,0x00AB,0x00AC,0x00AD,0x00AE,0x017B, 467 0x00B0,0x00B1,0x02DB,0x0142,0x00B4,0x00B5,0x00B6,0x00B7, 468 0x00B8,0x0105,0x015F,0x00BB,0x013D,0x02DD,0x013E,0x017C, 469 0x0154,0x00C1,0x00C2,0x0102,0x00C4,0x0139,0x0106,0x00C7, 470 0x010C,0x00C9,0x0118,0x00CB,0x011A,0x00CD,0x00CE,0x010E, 471 0x0110,0x0143,0x0147,0x00D3,0x00D4,0x0150,0x00D6,0x00D7, 472 0x0158,0x016E,0x00DA,0x0170,0x00DC,0x00DD,0x0162,0x00DF, 473 0x0155,0x00E1,0x00E2,0x0103,0x00E4,0x013A,0x0107,0x00E7, 474 0x010D,0x00E9,0x0119,0x00EB,0x011B,0x00ED,0x00EE,0x010F, 475 0x0111,0x0144,0x0148,0x00F3,0x00F4,0x0151,0x00F6,0x00F7, 476 0x0159,0x016F,0x00FA,0x0171,0x00FC,0x00FD,0x0163,0x02D9 } }, 477 { RTL_TEXTENCODING_MS_1251, 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 0x0402,0x0403,0x201A,0x0453,0x201E,0x2026,0x2020,0x2021, 495 0x20AC,0x2030,0x0409,0x2039,0x040A,0x040C,0x040B,0x040F, 496 0x0452,0x2018,0x2019,0x201C,0x201D,0x2022,0x2013,0x2014, 497 0xFFFF,0x2122,0x0459,0x203A,0x045A,0x045C,0x045B,0x045F, 498 0x00A0,0x040E,0x045E,0x0408,0x00A4,0x0490,0x00A6,0x00A7, 499 0x0401,0x00A9,0x0404,0x00AB,0x00AC,0x00AD,0x00AE,0x0407, 500 0x00B0,0x00B1,0x0406,0x0456,0x0491,0x00B5,0x00B6,0x00B7, 501 0x0451,0x2116,0x0454,0x00BB,0x0458,0x0405,0x0455,0x0457, 502 0x0410,0x0411,0x0412,0x0413,0x0414,0x0415,0x0416,0x0417, 503 0x0418,0x0419,0x041A,0x041B,0x041C,0x041D,0x041E,0x041F, 504 0x0420,0x0421,0x0422,0x0423,0x0424,0x0425,0x0426,0x0427, 505 0x0428,0x0429,0x042A,0x042B,0x042C,0x042D,0x042E,0x042F, 506 0x0430,0x0431,0x0432,0x0433,0x0434,0x0435,0x0436,0x0437, 507 0x0438,0x0439,0x043A,0x043B,0x043C,0x043D,0x043E,0x043F, 508 0x0440,0x0441,0x0442,0x0443,0x0444,0x0445,0x0446,0x0447, 509 0x0448,0x0449,0x044A,0x044B,0x044C,0x044D,0x044E,0x044F } }, 510 { RTL_TEXTENCODING_MS_1252, 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 0x20AC,0xFFFF,0x201A,0x0192,0x201E,0x2026,0x2020,0x2021, 528 0x02C6,0x2030,0x0160,0x2039,0x0152,0xFFFF,0x017D,0xFFFF, 529 0xFFFF,0x2018,0x2019,0x201C,0x201D,0x2022,0x2013,0x2014, 530 0x02DC,0x2122,0x0161,0x203A,0x0153,0xFFFF,0x017E,0x0178, 531 0x00A0,0x00A1,0x00A2,0x00A3,0x00A4,0x00A5,0x00A6,0x00A7, 532 0x00A8,0x00A9,0x00AA,0x00AB,0x00AC,0x00AD,0x00AE,0x00AF, 533 0x00B0,0x00B1,0x00B2,0x00B3,0x00B4,0x00B5,0x00B6,0x00B7, 534 0x00B8,0x00B9,0x00BA,0x00BB,0x00BC,0x00BD,0x00BE,0x00BF, 535 0x00C0,0x00C1,0x00C2,0x00C3,0x00C4,0x00C5,0x00C6,0x00C7, 536 0x00C8,0x00C9,0x00CA,0x00CB,0x00CC,0x00CD,0x00CE,0x00CF, 537 0x00D0,0x00D1,0x00D2,0x00D3,0x00D4,0x00D5,0x00D6,0x00D7, 538 0x00D8,0x00D9,0x00DA,0x00DB,0x00DC,0x00DD,0x00DE,0x00DF, 539 0x00E0,0x00E1,0x00E2,0x00E3,0x00E4,0x00E5,0x00E6,0x00E7, 540 0x00E8,0x00E9,0x00EA,0x00EB,0x00EC,0x00ED,0x00EE,0x00EF, 541 0x00F0,0x00F1,0x00F2,0x00F3,0x00F4,0x00F5,0x00F6,0x00F7, 542 0x00F8,0x00F9,0x00FA,0x00FB,0x00FC,0x00FD,0x00FE,0x00FF } }, 543 { RTL_TEXTENCODING_MS_1253, 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 0xFFFF,0x2030,0xFFFF,0x2039,0xFFFF,0xFFFF,0xFFFF,0xFFFF, 562 0xFFFF,0x2018,0x2019,0x201C,0x201D,0x2022,0x2013,0x2014, 563 0xFFFF,0x2122,0xFFFF,0x203A,0xFFFF,0xFFFF,0xFFFF,0xFFFF, 564 0x00A0,0x0385,0x0386,0x00A3,0x00A4,0x00A5,0x00A6,0x00A7, 565 0x00A8,0x00A9,0xFFFF,0x00AB,0x00AC,0x00AD,0x00AE,0x2015, 566 0x00B0,0x00B1,0x00B2,0x00B3,0x0384,0x00B5,0x00B6,0x00B7, 567 0x0388,0x0389,0x038A,0x00BB,0x038C,0x00BD,0x038E,0x038F, 568 0x0390,0x0391,0x0392,0x0393,0x0394,0x0395,0x0396,0x0397, 569 0x0398,0x0399,0x039A,0x039B,0x039C,0x039D,0x039E,0x039F, 570 0x03A0,0x03A1,0xFFFF,0x03A3,0x03A4,0x03A5,0x03A6,0x03A7, 571 0x03A8,0x03A9,0x03AA,0x03AB,0x03AC,0x03AD,0x03AE,0x03AF, 572 0x03B0,0x03B1,0x03B2,0x03B3,0x03B4,0x03B5,0x03B6,0x03B7, 573 0x03B8,0x03B9,0x03BA,0x03BB,0x03BC,0x03BD,0x03BE,0x03BF, 574 0x03C0,0x03C1,0x03C2,0x03C3,0x03C4,0x03C5,0x03C6,0x03C7, 575 0x03C8,0x03C9,0x03CA,0x03CB,0x03CC,0x03CD,0x03CE,0xFFFF } }, 576 { RTL_TEXTENCODING_MS_1254, 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 0x02C6,0x2030,0x0160,0x2039,0x0152,0xFFFF,0xFFFF,0xFFFF, 595 0xFFFF,0x2018,0x2019,0x201C,0x201D,0x2022,0x2013,0x2014, 596 0x02DC,0x2122,0x0161,0x203A,0x0153,0xFFFF,0xFFFF,0x0178, 597 0x00A0,0x00A1,0x00A2,0x00A3,0x00A4,0x00A5,0x00A6,0x00A7, 598 0x00A8,0x00A9,0x00AA,0x00AB,0x00AC,0x00AD,0x00AE,0x00AF, 599 0x00B0,0x00B1,0x00B2,0x00B3,0x00B4,0x00B5,0x00B6,0x00B7, 600 0x00B8,0x00B9,0x00BA,0x00BB,0x00BC,0x00BD,0x00BE,0x00BF, 601 0x00C0,0x00C1,0x00C2,0x00C3,0x00C4,0x00C5,0x00C6,0x00C7, 602 0x00C8,0x00C9,0x00CA,0x00CB,0x00CC,0x00CD,0x00CE,0x00CF, 603 0x011E,0x00D1,0x00D2,0x00D3,0x00D4,0x00D5,0x00D6,0x00D7, 604 0x00D8,0x00D9,0x00DA,0x00DB,0x00DC,0x0130,0x015E,0x00DF, 605 0x00E0,0x00E1,0x00E2,0x00E3,0x00E4,0x00E5,0x00E6,0x00E7, 606 0x00E8,0x00E9,0x00EA,0x00EB,0x00EC,0x00ED,0x00EE,0x00EF, 607 0x011F,0x00F1,0x00F2,0x00F3,0x00F4,0x00F5,0x00F6,0x00F7, 608 0x00F8,0x00F9,0x00FA,0x00FB,0x00FC,0x0131,0x015F,0x00FF } }, 609 { RTL_TEXTENCODING_APPLE_ROMAN, 610 { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 611 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F, 612 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 613 0x18, 0x19, 0x1A, 0x1B, 0x1C, 0x1D, 0x1E, 0x1F, 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, 0x7F, 626 0x00C4,0x00C5,0x00C7,0x00C9,0x00D1,0x00D6,0x00DC,0x00E1, 627 0x00E0,0x00E2,0x00E4,0x00E3,0x00E5,0x00E7,0x00E9,0x00E8, 628 0x00EA,0x00EB,0x00ED,0x00EC,0x00EE,0x00EF,0x00F1,0x00F3, 629 0x00F2,0x00F4,0x00F6,0x00F5,0x00FA,0x00F9,0x00FB,0x00FC, 630 0x2020,0x00B0,0x00A2,0x00A3,0x00A7,0x2022,0x00B6,0x00DF, 631 0x00AE,0x00A9,0x2122,0x00B4,0x00A8,0x2260,0x00C6,0x00D8, 632 0x221E,0x00B1,0x2264,0x2265,0x00A5,0x00B5,0x2202,0x2211, 633 0x220F,0x03C0,0x222B,0x00AA,0x00BA,0x03A9,0x00E6,0x00F8, 634 0x00BF,0x00A1,0x00AC,0x221A,0x0192,0x2248,0x2206,0x00AB, 635 0x00BB,0x2026,0x00A0,0x00C0,0x00C3,0x00D5,0x0152,0x0153, 636 0x2013,0x2014,0x201C,0x201D,0x2018,0x2019,0x00F7,0x25CA, 637 0x00FF,0x0178,0x2044,0x20AC,0x2039,0x203A,0xFB01,0xFB02, 638 0x2021,0x00B7,0x201A,0x201E,0x2030,0x00C2,0x00CA,0x00C1, 639 0x00CB,0x00C8,0x00CD,0x00CE,0x00CF,0x00CC,0x00D3,0x00D4, 640 0xF8FF,0x00D2,0x00DA,0x00DB,0x00D9,0x0131,0x02C6,0x02DC, 641 0x00AF,0x02D8,0x02D9,0x02DA,0x00B8,0x02DD,0x02DB,0x02C7 } }, 642 { RTL_TEXTENCODING_IBM_437, 643 { 0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007, 644 0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F, 645 0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017, 646 0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F, 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,0x007F, 659 0x00c7,0x00fc,0x00e9,0x00e2,0x00e4,0x00e0,0x00e5,0x00e7, 660 0x00ea,0x00eb,0x00e8,0x00ef,0x00ee,0x00ec,0x00c4,0x00c5, 661 0x00c9,0x00e6,0x00c6,0x00f4,0x00f6,0x00f2,0x00fb,0x00f9, 662 0x00ff,0x00d6,0x00dc,0x00a2,0x00a3,0x00a5,0x20a7,0x0192, 663 0x00e1,0x00ed,0x00f3,0x00fa,0x00f1,0x00d1,0x00aa,0x00ba, 664 0x00bf,0x2310,0x00ac,0x00bd,0x00bc,0x00a1,0x00ab,0x00bb, 665 0x2591,0x2592,0x2593,0x2502,0x2524,0x2561,0x2562,0x2556, 666 0x2555,0x2563,0x2551,0x2557,0x255d,0x255c,0x255b,0x2510, 667 0x2514,0x2534,0x252c,0x251c,0x2500,0x253c,0x255e,0x255f, 668 0x255a,0x2554,0x2569,0x2566,0x2560,0x2550,0x256c,0x2567, 669 0x2568,0x2564,0x2565,0x2559,0x2558,0x2552,0x2553,0x256b, 670 0x256a,0x2518,0x250c,0x2588,0x2584,0x258c,0x2590,0x2580, 671 0x03b1,0x00df,0x0393,0x03c0,0x03a3,0x03c3,0x00b5,0x03c4, 672 0x03a6,0x0398,0x03a9,0x03b4,0x221e,0x03c6,0x03b5,0x2229, 673 0x2261,0x00b1,0x2265,0x2264,0x2320,0x2321,0x00f7,0x2248, 674 0x00b0,0x2219,0x00b7,0x221a,0x207f,0x00b2,0x25a0,0x00a0 } }, 675 // ... 676 { RTL_TEXTENCODING_ASCII_US, 677 { 0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007, 678 0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F, 679 0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017, 680 0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F, 681 0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027, 682 0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F, 683 0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037, 684 0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F, 685 0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047, 686 0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F, 687 0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057, 688 0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F, 689 0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067, 690 0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F, 691 0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077, 692 0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F, 693 0x20AC,0xFFFF,0x201A,0x0192,0x201E,0x2026,0x2020,0x2021, // ! 694 0x02C6,0x2030,0x0160,0x2039,0x0152,0xFFFF,0x017D,0xFFFF, // ! 695 0xFFFF,0x2018,0x2019,0x201C,0x201D,0x2022,0x2013,0x2014, // ! 696 0x02DC,0x2122,0x0161,0x203A,0x0153,0xFFFF,0x017E,0x0178, // ! 697 0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, 698 0xA8, 0xA9, 0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0xAF, 699 0xB0, 0xB1, 0xB2, 0xB3, 0xB4, 0xB5, 0xB6, 0xB7, 700 0xB8, 0xB9, 0xBA, 0xBB, 0xBC, 0xBD, 0xBE, 0xBF, 701 0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, 702 0xC8, 0xC9, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF, 703 0xD0, 0xD1, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6, 0xD7, 704 0xD8, 0xD9, 0xDA, 0xDB, 0xDC, 0xDD, 0xDE, 0xDF, 705 0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, 706 0xE8, 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF, 707 0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7, 708 0xF8, 0xF9, 0xFA, 0xFB, 0xFC, 0xFD, 0xFE, 0xFF } }, 709 { RTL_TEXTENCODING_ISO_8859_1, 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 0x0080,0x0081,0x0082,0x0083,0x0084,0x0085,0x0086,0x0087, 727 0x0088,0x0089,0x008A,0x008B,0x008C,0x008D,0x008E,0x008F, 728 0x0090,0x0091,0x0092,0x0093,0x0094,0x0095,0x0096,0x0097, 729 0x0098,0x0099,0x009A,0x009B,0x009C,0x009D,0x009E,0x009F, 730 0x00A0,0x00A1,0x00A2,0x00A3,0x00A4,0x00A5,0x00A6,0x00A7, 731 0x00A8,0x00A9,0x00AA,0x00AB,0x00AC,0x00AD,0x00AE,0x00AF, 732 0x00B0,0x00B1,0x00B2,0x00B3,0x00B4,0x00B5,0x00B6,0x00B7, 733 0x00B8,0x00B9,0x00BA,0x00BB,0x00BC,0x00BD,0x00BE,0x00BF, 734 0x00C0,0x00C1,0x00C2,0x00C3,0x00C4,0x00C5,0x00C6,0x00C7, 735 0x00C8,0x00C9,0x00CA,0x00CB,0x00CC,0x00CD,0x00CE,0x00CF, 736 0x00D0,0x00D1,0x00D2,0x00D3,0x00D4,0x00D5,0x00D6,0x00D7, 737 0x00D8,0x00D9,0x00DA,0x00DB,0x00DC,0x00DD,0x00DE,0x00DF, 738 0x00E0,0x00E1,0x00E2,0x00E3,0x00E4,0x00E5,0x00E6,0x00E7, 739 0x00E8,0x00E9,0x00EA,0x00EB,0x00EC,0x00ED,0x00EE,0x00EF, 740 0x00F0,0x00F1,0x00F2,0x00F3,0x00F4,0x00F5,0x00F6,0x00F7, 741 0x00F8,0x00F9,0x00FA,0x00FB,0x00FC,0x00FD,0x00FE,0x00FF } }, 742 { RTL_TEXTENCODING_ISO_8859_2, 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,0x0104,0x02D8,0x0141,0x00A4,0x013D,0x015A,0x00A7, 764 0x00A8,0x0160,0x015E,0x0164,0x0179,0x00AD,0x017D,0x017B, 765 0x00B0,0x0105,0x02DB,0x0142,0x00B4,0x013E,0x015B,0x02C7, 766 0x00B8,0x0161,0x015F,0x0165,0x017A,0x02DD,0x017E,0x017C, 767 0x0154,0x00C1,0x00C2,0x0102,0x00C4,0x0139,0x0106,0x00C7, 768 0x010C,0x00C9,0x0118,0x00CB,0x011A,0x00CD,0x00CE,0x010E, 769 0x0110,0x0143,0x0147,0x00D3,0x00D4,0x0150,0x00D6,0x00D7, 770 0x0158,0x016E,0x00DA,0x0170,0x00DC,0x00DD,0x0162,0x00DF, 771 0x0155,0x00E1,0x00E2,0x0103,0x00E4,0x013A,0x0107,0x00E7, 772 0x010D,0x00E9,0x0119,0x00EB,0x011B,0x00ED,0x00EE,0x010F, 773 0x0111,0x0144,0x0148,0x00F3,0x00F4,0x0151,0x00F6,0x00F7, 774 0x0159,0x016F,0x00FA,0x0171,0x00FC,0x00FD,0x0163,0x02D9 } }, 775 { RTL_TEXTENCODING_ISO_8859_3, 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,0x0126,0x02D8,0x00A3,0x00A4,0xFFFF,0x0124,0x00A7, 797 0x00A8,0x0130,0x015E,0x011E,0x0134,0x00AD,0xFFFF,0x017B, 798 0x00B0,0x0127,0x00B2,0x00B3,0x00B4,0x00B5,0x0125,0x00B7, 799 0x00B8,0x0131,0x015F,0x011F,0x0135,0x00BD,0xFFFF,0x017C, 800 0x00C0,0x00C1,0x00C2,0xFFFF,0x00C4,0x010A,0x0108,0x00C7, 801 0x00C8,0x00C9,0x00CA,0x00CB,0x00CC,0x00CD,0x00CE,0x00CF, 802 0xFFFF,0x00D1,0x00D2,0x00D3,0x00D4,0x0120,0x00D6,0x00D7, 803 0x011C,0x00D9,0x00DA,0x00DB,0x00DC,0x016C,0x015C,0x00DF, 804 0x00E0,0x00E1,0x00E2,0xFFFF,0x00E4,0x010B,0x0109,0x00E7, 805 0x00E8,0x00E9,0x00EA,0x00EB,0x00EC,0x00ED,0x00EE,0x00EF, 806 0xFFFF,0x00F1,0x00F2,0x00F3,0x00F4,0x0121,0x00F6,0x00F7, 807 0x011D,0x00F9,0x00FA,0x00FB,0x00FC,0x016D,0x015D,0x02D9 } }, 808 // ... 809 { RTL_TEXTENCODING_ISO_8859_6, 810 { 0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007, 811 0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F, 812 0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017, 813 0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F, 814 0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027, 815 0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F, 816 0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037, 817 0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F, 818 0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047, 819 0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F, 820 0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057, 821 0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F, 822 0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067, 823 0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F, 824 0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077, 825 0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F, 826 0x0080,0x0081,0x0082,0x0083,0x0084,0x0085,0x0086,0x0087, 827 0x0088,0x0089,0x008A,0x008B,0x008C,0x008D,0x008E,0x008F, 828 0x0090,0x0091,0x0092,0x0093,0x0094,0x0095,0x0096,0x0097, 829 0x0098,0x0099,0x009A,0x009B,0x009C,0x009D,0x009E,0x009F, 830 0x00A0,0xFFFF,0xFFFF,0xFFFF,0x00A4,0xFFFF,0xFFFF,0xFFFF, 831 0xFFFF,0xFFFF,0xFFFF,0xFFFF,0x060C,0x00AD,0xFFFF,0xFFFF, 832 0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF, 833 0xFFFF,0xFFFF,0xFFFF,0x061B,0xFFFF,0xFFFF,0xFFFF,0x061F, 834 0xFFFF,0x0621,0x0622,0x0623,0x0624,0x0625,0x0626,0x0627, 835 0x0628,0x0629,0x062A,0x062B,0x062C,0x062D,0x062E,0x062F, 836 0x0630,0x0631,0x0632,0x0633,0x0634,0x0635,0x0636,0x0637, 837 0x0638,0x0639,0x063A,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF, 838 0x0640,0x0641,0x0642,0x0643,0x0644,0x0645,0x0646,0x0647, 839 0x0648,0x0649,0x064A,0x064B,0x064C,0x064D,0x064E,0x064F, 840 0x0650,0x0651,0x0652,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF, 841 0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF } }, 842 // ... 843 { RTL_TEXTENCODING_ISO_8859_8, 844 { 0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007, 845 0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F, 846 0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017, 847 0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F, 848 0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027, 849 0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F, 850 0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037, 851 0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F, 852 0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047, 853 0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F, 854 0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057, 855 0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F, 856 0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067, 857 0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F, 858 0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077, 859 0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F, 860 0x0080,0x0081,0x0082,0x0083,0x0084,0x0085,0x0086,0x0087, 861 0x0088,0x0089,0x008A,0x008B,0x008C,0x008D,0x008E,0x008F, 862 0x0090,0x0091,0x0092,0x0093,0x0094,0x0095,0x0096,0x0097, 863 0x0098,0x0099,0x009A,0x009B,0x009C,0x009D,0x009E,0x009F, 864 0x00A0,0xFFFF,0x00A2,0x00A3,0x00A4,0x00A5,0x00A6,0x00A7, 865 0x00A8,0x00A9,0x00D7,0x00AB,0x00AC,0x00AD,0x00AE,0x00AF, 866 0x00B0,0x00B1,0x00B2,0x00B3,0x00B4,0x00B5,0x00B6,0x00B7, 867 0x00B8,0x00B9,0x00F7,0x00BB,0x00BC,0x00BD,0x00BE,0xFFFF, 868 0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF, 869 0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF, 870 0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF, 871 0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0x2017, 872 0x05D0,0x05D1,0x05D2,0x05D3,0x05D4,0x05D5,0x05D6,0x05D7, 873 0x05D8,0x05D9,0x05DA,0x05DB,0x05DC,0x05DD,0x05DE,0x05DF, 874 0x05E0,0x05E1,0x05E2,0x05E3,0x05E4,0x05E5,0x05E6,0x05E7, 875 0x05E8,0x05E9,0x05EA,0xFFFF,0xFFFF,0x200E,0x200F,0xFFFF } }, 876 // ... 877 { RTL_TEXTENCODING_TIS_620, 878 { 0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007, 879 0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F, 880 0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017, 881 0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F, 882 0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027, 883 0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F, 884 0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037, 885 0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F, 886 0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047, 887 0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F, 888 0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057, 889 0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F, 890 0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067, 891 0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F, 892 0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077, 893 0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F, 894 0x0080,0x0081,0x0082,0x0083,0x0084,0x0085,0x0086,0x0087, 895 0x0088,0x0089,0x008A,0x008B,0x008C,0x008D,0x008E,0x008F, 896 0x0090,0x0091,0x0092,0x0093,0x0094,0x0095,0x0096,0x0097, 897 0x0098,0x0099,0x009A,0x009B,0x009C,0x009D,0x009E,0x009F, 898 0x00A0,0x0E01,0x0E02,0x0E03,0x0E04,0x0E05,0x0E06,0x0E07, // ! 899 0x0E08,0x0E09,0x0E0A,0x0E0B,0x0E0C,0x0E0D,0x0E0E,0x0E0F, 900 0x0E10,0x0E11,0x0E12,0x0E13,0x0E14,0x0E15,0x0E16,0x0E17, 901 0x0E18,0x0E19,0x0E1A,0x0E1B,0x0E1C,0x0E1D,0x0E1E,0x0E1F, 902 0x0E20,0x0E21,0x0E22,0x0E23,0x0E24,0x0E25,0x0E26,0x0E27, 903 0x0E28,0x0E29,0x0E2A,0x0E2B,0x0E2C,0x0E2D,0x0E2E,0x0E2F, 904 0x0E30,0x0E31,0x0E32,0x0E33,0x0E34,0x0E35,0x0E36,0x0E37, 905 0x0E38,0x0E39,0x0E3A,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0x0E3F, 906 0x0E40,0x0E41,0x0E42,0x0E43,0x0E44,0x0E45,0x0E46,0x0E47, 907 0x0E48,0x0E49,0x0E4A,0x0E4B,0x0E4C,0x0E4D,0x0E4E,0x0E4F, 908 0x0E50,0x0E51,0x0E52,0x0E53,0x0E54,0x0E55,0x0E56,0x0E57, 909 0x0E58,0x0E59,0x0E5A,0x0E5B,0xFFFF,0xFFFF,0xFFFF,0xFFFF } }, 910 { RTL_TEXTENCODING_MS_874, 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 0x20AC,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0x2026,0xFFFF,0xFFFF, 928 0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF, 929 0xFFFF,0x2018,0x2019,0x201C,0x201D,0x2022,0x2013,0x2014, 930 0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF, 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_1255, 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,0x201A,0x0192,0x201E,0x2026,0x2020,0x2021, 961 0x02C6,0x2030,0xFFFF,0x2039,0xFFFF,0xFFFF,0xFFFF,0xFFFF, 962 0xFFFF,0x2018,0x2019,0x201C,0x201D,0x2022,0x2013,0x2014, 963 0x02DC,0x2122,0xFFFF,0x203A,0xFFFF,0xFFFF,0xFFFF,0xFFFF, 964 0x00A0,0x00A1,0x00A2,0x00A3,0x20AA,0x00A5,0x00A6,0x00A7, 965 0x00A8,0x00A9,0x00D7,0x00AB,0x00AC,0x00AD,0x00AE,0x00AF, 966 0x00B0,0x00B1,0x00B2,0x00B3,0x00B4,0x00B5,0x00B6,0x00B7, 967 0x00B8,0x00B9,0x00F7,0x00BB,0x00BC,0x00BD,0x00BE,0x00BF, 968 0x05B0,0x05B1,0x05B2,0x05B3,0x05B4,0x05B5,0x05B6,0x05B7, 969 0x05B8,0x05B9,0xFFFF,0x05BB,0x05BC,0x05BD,0x05BE,0x05BF, 970 0x05C0,0x05C1,0x05C2,0x05C3,0x05F0,0x05F1,0x05F2,0x05F3, 971 0x05F4,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF, 972 0x05D0,0x05D1,0x05D2,0x05D3,0x05D4,0x05D5,0x05D6,0x05D7, 973 0x05D8,0x05D9,0x05DA,0x05DB,0x05DC,0x05DD,0x05DE,0x05DF, 974 0x05E0,0x05E1,0x05E2,0x05E3,0x05E4,0x05E5,0x05E6,0x05E7, 975 0x05E8,0x05E9,0x05EA,0xFFFF,0xFFFF,0x200E,0x200F,0xFFFF } }, 976 { RTL_TEXTENCODING_MS_1256, 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,0x067E,0x201A,0x0192,0x201E,0x2026,0x2020,0x2021, 994 0x02C6,0x2030,0x0679,0x2039,0x0152,0x0686,0x0698,0x0688, 995 0x06AF,0x2018,0x2019,0x201C,0x201D,0x2022,0x2013,0x2014, 996 0x06A9,0x2122,0x0691,0x203A,0x0153,0x200C,0x200D,0x06BA, 997 0x00A0,0x060C,0x00A2,0x00A3,0x00A4,0x00A5,0x00A6,0x00A7, 998 0x00A8,0x00A9,0x06BE,0x00AB,0x00AC,0x00AD,0x00AE,0x00AF, 999 0x00B0,0x00B1,0x00B2,0x00B3,0x00B4,0x00B5,0x00B6,0x00B7, 1000 0x00B8,0x00B9,0x061B,0x00BB,0x00BC,0x00BD,0x00BE,0x061F, 1001 0x06C1,0x0621,0x0622,0x0623,0x0624,0x0625,0x0626,0x0627, 1002 0x0628,0x0629,0x062A,0x062B,0x062C,0x062D,0x062E,0x062F, 1003 0x0630,0x0631,0x0632,0x0633,0x0634,0x0635,0x0636,0x00D7, 1004 0x0637,0x0638,0x0639,0x063A,0x0640,0x0641,0x0642,0x0643, 1005 0x00E0,0x0644,0x00E2,0x0645,0x0646,0x0647,0x0648,0x00E7, 1006 0x00E8,0x00E9,0x00EA,0x00EB,0x0649,0x064A,0x00EE,0x00EF, 1007 0x064B,0x064C,0x064D,0x064E,0x00F4,0x064F,0x0650,0x00F7, 1008 0x0651,0x00F9,0x0652,0x00FB,0x00FC,0x200E,0x200F,0x06D2 } }, 1009 { RTL_TEXTENCODING_MS_1257, 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,0xFFFF,0x201A,0xFFFF,0x201E,0x2026,0x2020,0x2021, 1027 0xFFFF,0x2030,0xFFFF,0x2039,0xFFFF,0x00A8,0x02C7,0x00B8, 1028 0xFFFF,0x2018,0x2019,0x201C,0x201D,0x2022,0x2013,0x2014, 1029 0xFFFF,0x2122,0xFFFF,0x203A,0xFFFF,0x00AF,0x02DB,0xFFFF, 1030 0x00A0,0xFFFF,0x00A2,0x00A3,0x00A4,0xFFFF,0x00A6,0x00A7, 1031 0x00D8,0x00A9,0x0156,0x00AB,0x00AC,0x00AD,0x00AE,0x00C6, 1032 0x00B0,0x00B1,0x00B2,0x00B3,0x00B4,0x00B5,0x00B6,0x00B7, 1033 0x00F8,0x00B9,0x0157,0x00BB,0x00BC,0x00BD,0x00BE,0x00E6, 1034 0x0104,0x012E,0x0100,0x0106,0x00C4,0x00C5,0x0118,0x0112, 1035 0x010C,0x00C9,0x0179,0x0116,0x0122,0x0136,0x012A,0x013B, 1036 0x0160,0x0143,0x0145,0x00D3,0x014C,0x00D5,0x00D6,0x00D7, 1037 0x0172,0x0141,0x015A,0x016A,0x00DC,0x017B,0x017D,0x00DF, 1038 0x0105,0x012F,0x0101,0x0107,0x00E4,0x00E5,0x0119,0x0113, 1039 0x010D,0x00E9,0x017A,0x0117,0x0123,0x0137,0x012B,0x013C, 1040 0x0161,0x0144,0x0146,0x00F3,0x014D,0x00F5,0x00F6,0x00F7, 1041 0x0173,0x0142,0x015B,0x016B,0x00FC,0x017C,0x017E,0x02D9 } }, 1042 { RTL_TEXTENCODING_MS_1258, 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,0x0192,0x201E,0x2026,0x2020,0x2021, 1060 0x02C6,0x2030,0xFFFF,0x2039,0x0152,0xFFFF,0xFFFF,0xFFFF, 1061 0xFFFF,0x2018,0x2019,0x201C,0x201D,0x2022,0x2013,0x2014, 1062 0x02DC,0x2122,0xFFFF,0x203A,0x0153,0xFFFF,0xFFFF,0x0178, 1063 0x00A0,0x00A1,0x00A2,0x00A3,0x00A4,0x00A5,0x00A6,0x00A7, 1064 0x00A8,0x00A9,0x00AA,0x00AB,0x00AC,0x00AD,0x00AE,0x00AF, 1065 0x00B0,0x00B1,0x00B2,0x00B3,0x00B4,0x00B5,0x00B6,0x00B7, 1066 0x00B8,0x00B9,0x00BA,0x00BB,0x00BC,0x00BD,0x00BE,0x00BF, 1067 0x00C0,0x00C1,0x00C2,0x0102,0x00C4,0x00C5,0x00C6,0x00C7, 1068 0x00C8,0x00C9,0x00CA,0x00CB,0x0300,0x00CD,0x00CE,0x00CF, 1069 0x0110,0x00D1,0x0309,0x00D3,0x00D4,0x01A0,0x00D6,0x00D7, 1070 0x00D8,0x00D9,0x00DA,0x00DB,0x00DC,0x01AF,0x0303,0x00DF, 1071 0x00E0,0x00E1,0x00E2,0x0103,0x00E4,0x00E5,0x00E6,0x00E7, 1072 0x00E8,0x00E9,0x00EA,0x00EB,0x0301,0x00ED,0x00EE,0x00EF, 1073 0x0111,0x00F1,0x0323,0x00F3,0x00F4,0x01A1,0x00F6,0x00F7, 1074 0x00F8,0x00F9,0x00FA,0x00FB,0x00FC,0x01B0,0x20AB,0x00FF } }, 1075 { RTL_TEXTENCODING_KOI8_U, // RFC 2319 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 0x2500,0x2502,0x250C,0x2510,0x2514,0x2518,0x251C,0x2524, 1093 0x252C,0x2534,0x253C,0x2580,0x2584,0x2588,0x258C,0x2590, 1094 0x2591,0x2592,0x2593,0x2320,0x25A0,0x2219,0x221A,0x2248, 1095 0x2264,0x2265,0x00A0,0x2321,0x00B0,0x00B2,0x00B7,0x00F7, 1096 0x2550,0x2551,0x2552,0x0451,0x0454,0x2554,0x0456,0x0457, 1097 0x2557,0x2558,0x2559,0x255A,0x255B,0x0491,0x255D,0x255E, 1098 0x255F,0x2560,0x2561,0x0401,0x0404,0x2563,0x0406,0x0407, 1099 0x2566,0x2567,0x2568,0x2569,0x256A,0x0490,0x256C,0x00A9, 1100 0x044E,0x0430,0x0431,0x0446,0x0434,0x0435,0x0444,0x0433, 1101 0x0445,0x0438,0x0439,0x043A,0x043B,0x043C,0x043D,0x043E, 1102 0x043F,0x044F,0x0440,0x0441,0x0442,0x0443,0x0436,0x0432, 1103 0x044C,0x044B,0x0437,0x0448,0x044D,0x0449,0x0447,0x044A, 1104 0x042E,0x0410,0x0411,0x0426,0x0414,0x0415,0x0424,0x0413, 1105 0x0425,0x0418,0x0419,0x041A,0x041B,0x041C,0x041D,0x041E, 1106 0x041F,0x042F,0x0420,0x0421,0x0422,0x0423,0x0416,0x0412, 1107 0x042C,0x042B,0x0417,0x0428,0x042D,0x0429,0x0427,0x042A } }, 1108 { RTL_TEXTENCODING_ISCII_DEVANAGARI, 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 0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF, 1126 0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF, 1127 0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF, 1128 0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF, 1129 0xFFFF,0x0901,0x0902,0x0903,0x0905,0x0906,0x0907,0x0908, 1130 0x0909,0x090A,0x090B,0x090E,0x090F,0x0910,0x090D,0x0912, 1131 0x0913,0x0914,0x0911,0x0915,0x0916,0x0917,0x0918,0x0919, 1132 0x091A,0x091B,0x091C,0x091D,0x091E,0x091F,0x0920,0x0921, 1133 0x0922,0x0923,0x0924,0x0925,0x0926,0x0927,0x0928,0x0929, 1134 0x092A,0x092B,0x092C,0x092D,0x092E,0x092F,0x095F,0x0930, 1135 0x0931,0x0932,0x0933,0x0934,0x0935,0x0936,0x0937,0x0938, 1136 0x0939,0xFFFF,0x093E,0x093F,0x0940,0x0941,0x0942,0x0943, 1137 0x0946,0x0947,0x0948,0x0945,0x094A,0x094B,0x094C,0x0949, 1138 0x094D,0x093C,0x0964,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF, 1139 0xFFFF,0x0966,0x0967,0x0968,0x0969,0x096A,0x096B,0x096C, 1140 0x096D,0x096E,0x096F,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF } }, 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, 1212 // 20 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, 1217 // 40 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, 1222 // 60 1223 0x2740,0x2741,0x2742,0x2743,0x2744,0x2745,0x2746,0x2747, 1224 0x2748,0x2749,0x274A,0x274B,0x27CF,0x274D,0x25A0,0x274F, 1225 0x2750,0x2751,0x2752,0x25B2,0x25BC,0x25C6,0x2756,0x25D7, 1226 0x2758,0x2759,0x275A,0x275B,0x275C,0x275D,0x275E,0xFFFF, 1227 // 80 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, 1232 // A0 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, 1237 // C0 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, 1242 // E0 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 < sizeof data / sizeof data[0]; ++i) { 1281 testSingleByteCharSet(data[i]); 1282 } 1283 } 1284 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 }, 1290 7, 1291 true, 1292 true, 1293 true, 1294 false, 1295 RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR }, 1296 { RTL_TEXTENCODING_EUC_CN, 1297 RTL_CONSTASCII_STRINGPARAM("\x01\"3De$~\xA1\xB9\xF0\xC5"), 1298 { 0x0001,0x0022,0x0033,0x0044,0x0065,0x0024,0x007E, 1299 0x300D,0x9E4B }, 1300 9, 1301 true, 1302 true, 1303 true, 1304 false, 1305 RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR }, 1306 { RTL_TEXTENCODING_EUC_TW, 1307 RTL_CONSTASCII_STRINGPARAM( 1308 "\x01\"3De$~\xC5\xF0\x8E\xA4\xDC\xD9"), 1309 { 0x0001,0x0022,0x0033,0x0044,0x0065,0x0024,0x007E, 1310 0x4ED9,0xD87E,0xDD68 }, 1311 10, 1312 true, 1313 true, 1314 true, 1315 false, 1316 RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR }, 1317 { RTL_TEXTENCODING_GB_18030, 1318 RTL_CONSTASCII_STRINGPARAM("\x01\"3De$~"), 1319 { 0x0001,0x0022,0x0033,0x0044,0x0065,0x0024,0x007E }, 1320 7, 1321 true, 1322 true, 1323 true, 1324 false, 1325 RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR }, 1326 { RTL_TEXTENCODING_GB_18030, 1327 RTL_CONSTASCII_STRINGPARAM("\x81\x40\xFE\xFE"), 1328 { 0x4E02,0xE4C5 }, 1329 2, 1330 true, 1331 true, 1332 true, 1333 false, 1334 RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR }, 1335 { RTL_TEXTENCODING_GB_18030, 1336 RTL_CONSTASCII_STRINGPARAM( 1337 "\x81\x30\xB1\x33\x81\x30\xD3\x30\x81\x36\xA5\x31"), 1338 { 0x028A,0x0452,0x200F }, 1339 3, 1340 true, 1341 true, 1342 true, 1343 false, 1344 RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR }, 1345 { RTL_TEXTENCODING_GB_18030, 1346 RTL_CONSTASCII_STRINGPARAM( 1347 "\xFE\x50\xFE\x51\xFE\x52\xFE\x53\xFE\x54\xFE\x55\xFE\x56" 1348 "\xFE\x57\xFE\x58\xFE\x59\xFE\x5A\xFE\x5B\xFE\x5C\xFE\x5D" 1349 "\xFE\x5E\xFE\x5F\xFE\x60\xFE\x61\xFE\x62\xFE\x63\xFE\x64" 1350 "\xFE\x65\xFE\x66\xFE\x67\xFE\x68\xFE\x69\xFE\x6A\xFE\x6B" 1351 "\xFE\x6C\xFE\x6D\xFE\x6E\xFE\x6F\xFE\x70\xFE\x71\xFE\x72" 1352 "\xFE\x73\xFE\x74\xFE\x75\xFE\x76\xFE\x77\xFE\x78\xFE\x79" 1353 "\xFE\x7A\xFE\x7B\xFE\x7C\xFE\x7D\xFE\x7E\xFE\x80\xFE\x81" 1354 "\xFE\x82\xFE\x83\xFE\x84\xFE\x85\xFE\x86\xFE\x87\xFE\x88" 1355 "\xFE\x89\xFE\x8A\xFE\x8B\xFE\x8C\xFE\x8D\xFE\x8E\xFE\x8F" 1356 "\xFE\x90\xFE\x91\xFE\x92\xFE\x93\xFE\x94\xFE\x95\xFE\x96" 1357 "\xFE\x97\xFE\x98\xFE\x99\xFE\x9A\xFE\x9B\xFE\x9C\xFE\x9D" 1358 "\xFE\x9E\xFE\x9F\xFE\xA0"), 1359 { 0x2E81,0xE816,0xE817,0xE818,0x2E84,0x3473,0x3447,0x2E88, 1360 0x2E8B,0xE81E,0x359E,0x361A,0x360E,0x2E8C,0x2E97,0x396E, 1361 0x3918,0xE826,0x39CF,0x39DF,0x3A73,0x39D0,0xE82B,0xE82C, 1362 0x3B4E,0x3C6E,0x3CE0,0x2EA7,0xE831,0xE832,0x2EAA,0x4056, 1363 0x415F,0x2EAE,0x4337,0x2EB3,0x2EB6,0x2EB7,0xE83B,0x43B1, 1364 0x43AC,0x2EBB,0x43DD,0x44D6,0x4661,0x464C,0xE843,0x4723, 1365 0x4729,0x477C,0x478D,0x2ECA,0x4947,0x497A,0x497D,0x4982, 1366 0x4983,0x4985,0x4986,0x499F,0x499B,0x49B7,0x49B6,0xE854, 1367 0xE855,0x4CA3,0x4C9F,0x4CA0,0x4CA1,0x4C77,0x4CA2,0x4D13, 1368 0x4D14,0x4D15,0x4D16,0x4D17,0x4D18,0x4D19,0x4DAE,0xE864 }, 1369 80, 1370 true, 1371 true, 1372 false, 1373 false, 1374 RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR }, 1375 { RTL_TEXTENCODING_ISO_2022_JP, 1376 RTL_CONSTASCII_STRINGPARAM("\x01\"3De$\\~"), 1377 { 0x0001,0x0022,0x0033,0x0044,0x0065,0x0024,0x005C,0x007E }, 1378 8, 1379 false, 1380 true, 1381 true, 1382 false, 1383 RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR }, 1384 { RTL_TEXTENCODING_ISO_2022_JP, 1385 RTL_CONSTASCII_STRINGPARAM("\x1B(B\x01\"3De$\\~"), 1386 { 0x0001,0x0022,0x0033,0x0044,0x0065,0x0024,0x005C,0x007E }, 1387 8, 1388 false, 1389 true, 1390 false, 1391 false, 1392 RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR }, 1393 { RTL_TEXTENCODING_ISO_2022_JP, 1394 RTL_CONSTASCII_STRINGPARAM("\x1B(J\x01\"3De$\\~"), 1395 { 0x0001,0x0022,0x0033,0x0044,0x0065,0x0024,0x00A5,0x00AF }, 1396 8, 1397 false, 1398 true, 1399 false, 1400 false, 1401 RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR }, 1402 { RTL_TEXTENCODING_ISO_2022_JP, 1403 RTL_CONSTASCII_STRINGPARAM("\x1B$B\x26\x21\x27\x71\x1B(B"), 1404 { 0x0391,0x044F }, 1405 2, 1406 false, 1407 true, 1408 true, 1409 false, 1410 RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR }, 1411 { RTL_TEXTENCODING_ISO_2022_KR, 1412 RTL_CONSTASCII_STRINGPARAM("\x1B$)C\x01\"3De$\\~"), 1413 { 0x0001,0x0022,0x0033,0x0044,0x0065,0x0024,0x005C,0x007E }, 1414 8, 1415 false, 1416 true, 1417 true, 1418 false, 1419 RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR }, 1420 { RTL_TEXTENCODING_ISO_2022_KR, 1421 RTL_CONSTASCII_STRINGPARAM( 1422 "\x1B$)C\x0E\x25\x21\x0F\x0D\x0Ax\x0E\x48\x7E\x0F"), 1423 { 0x2170,0x000D,0x000A,0x0078,0xD79D }, 1424 5, 1425 false, 1426 true, 1427 true, 1428 false, 1429 RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR }, 1430 { RTL_TEXTENCODING_ISO_2022_CN, 1431 RTL_CONSTASCII_STRINGPARAM( 1432 "\x01\"3De$\\~\x1B$)G\x0E\x45\x70\x1B$*H\x1BN\x22\x22" 1433 "\x45\x70\x0F\x1B$)A\x0E\x26\x21\x0F"), 1434 { 0x0001,0x0022,0x0033,0x0044,0x0065,0x0024,0x005C,0x007E, 1435 0x4ED9,0x531F,0x4ED9,0x0391 }, 1436 12, 1437 false, 1438 true, 1439 false, 1440 false, 1441 RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR }, 1442 { RTL_TEXTENCODING_ISO_2022_CN, 1443 RTL_CONSTASCII_STRINGPARAM( 1444 "\x01\"3De$\\~\x1B$)A\x0E\x26\x21\x1B$*H\x1BN\x22\x22" 1445 "\x26\x21\x0F\x0D\x0A\x1B$)A\x0E\x26\x21\x0F"), 1446 { 0x0001,0x0022,0x0033,0x0044,0x0065,0x0024,0x005C,0x007E, 1447 0x0391,0x531F,0x0391,0x000D,0x000A,0x0391 }, 1448 14, 1449 false, 1450 true, 1451 true, 1452 false, 1453 RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR }, 1454 // The following does not work as long as Big5-HKSCS maps to 1455 // Unicode PUA instead of Plane 2. Use the next two tests 1456 // instead: 1457 // { RTL_TEXTENCODING_BIG5_HKSCS, 1458 // RTL_CONSTASCII_STRINGPARAM( 1459 // "\x01\"3De$~\x88\x56\xF9\xFE\xFA\x5E\xA1\x40\xF9\xD5"), 1460 // { 0x0001,0x0022,0x0033,0x0044,0x0065,0x0024,0x007E,0x0100, 1461 // 0xFFED,0xD849,0xDD13,0x3000,0x9F98 }, 1462 // 13, 1463 // true, 1464 // true, 1465 // true, 1466 // false, 1467 // RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR }, 1468 { RTL_TEXTENCODING_BIG5_HKSCS, 1469 RTL_CONSTASCII_STRINGPARAM( 1470 "\x01\"3De$~\x88\x56\xF9\xFE\xFA\x5E\xA1\x40\xF9\xD5"), 1471 { 0x0001,0x0022,0x0033,0x0044,0x0065,0x0024,0x007E,0x0100, 1472 0xFFED,0xE01E,0x3000,0x9F98 }, 1473 12, 1474 true, 1475 true, 1476 true, 1477 false, 1478 RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR }, 1479 { RTL_TEXTENCODING_BIG5_HKSCS, 1480 RTL_CONSTASCII_STRINGPARAM( 1481 "\x01\"3De$~\x88\x56\xF9\xFE\xFA\x5E\xA1\x40\xF9\xD5"), 1482 { 0x0001,0x0022,0x0033,0x0044,0x0065,0x0024,0x007E,0x0100, 1483 0xFFED,0xD849,0xDD13,0x3000,0x9F98 }, 1484 13, 1485 true, 1486 false, 1487 true, 1488 false, 1489 RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR }, 1490 { RTL_TEXTENCODING_BIG5_HKSCS, 1491 RTL_CONSTASCII_STRINGPARAM( 1492 "\xC6\xA1\xC6\xCF\xC6\xD3\xC6\xD5\xC6\xD7\xC6\xDE\xC6\xDF" 1493 "\xC6\xFE\xC7\x40\xC7\x7E\xC7\xA1\xC7\xFE"), 1494 { 0x2460,0xF6E0,0xF6E4,0xF6E6,0xF6E8,0xF6EF,0xF6F0,0x3058, 1495 0x3059,0x30A4,0x30A5,0x041A }, 1496 12, 1497 true, 1498 true, 1499 true, 1500 false, 1501 RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR }, 1502 { RTL_TEXTENCODING_BIG5_HKSCS, 1503 RTL_CONSTASCII_STRINGPARAM("\x81\x40\x84\xFE"), 1504 { 0xEEB8,0xF12B }, 1505 2, 1506 true, 1507 true, 1508 true, 1509 false, 1510 RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR }, 1511 { RTL_TEXTENCODING_BIG5_HKSCS, 1512 RTL_CONSTASCII_STRINGPARAM( 1513 "\x81\x40\x8D\xFE\x8E\x40\xA0\xFE\xC6\xA1\xC8\xFE\xFA\x40" 1514 "\xFE\xFE"), 1515 { 0xEEB8,0xF6B0,0xE311,0xEEB7,0xF6B1,0xF848,0xE000,0xE310 }, 1516 8, 1517 true, 1518 false, 1519 true, 1520 false, 1521 RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR }, 1522 { RTL_TEXTENCODING_BIG5_HKSCS, 1523 RTL_CONSTASCII_STRINGPARAM("\xAD\xC5\x94\x55"), 1524 { 0x5029,0x7250 }, 1525 2, 1526 true, 1527 true, 1528 true, 1529 false, 1530 RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR }, 1531 { RTL_TEXTENCODING_BIG5_HKSCS, 1532 RTL_CONSTASCII_STRINGPARAM("\xFA\x5F\xA0\xE4"), 1533 { 0x5029,0x7250 }, 1534 2, 1535 true, 1536 true, 1537 false, 1538 false, 1539 RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR }, 1540 { RTL_TEXTENCODING_BIG5_HKSCS, 1541 RTL_CONSTASCII_STRINGPARAM("\xA0\x40\xA0\x7E\xA0\xA1\xA0\xFE"), 1542 { 0xEE1B,0xEE59,0xEE5A,0xEEB7 }, 1543 4, 1544 true, 1545 false, 1546 true, 1547 false, 1548 RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR }, 1549 { RTL_TEXTENCODING_BIG5, 1550 RTL_CONSTASCII_STRINGPARAM("\xA1\x45"), 1551 { 0x2027 }, 1552 1, 1553 true, 1554 true, 1555 true, 1556 false, 1557 RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR }, 1558 { RTL_TEXTENCODING_BIG5, 1559 RTL_CONSTASCII_STRINGPARAM( 1560 "\xC6\xCF\xC6\xD3\xC6\xD5\xC6\xD7\xC6\xDE\xC6\xDF"), 1561 { 0x306B,0x306F,0x3071,0x3073,0x307A,0x307B }, 1562 6, 1563 true, 1564 true, 1565 true, 1566 false, 1567 RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR }, 1568 { RTL_TEXTENCODING_BIG5, 1569 RTL_CONSTASCII_STRINGPARAM( 1570 "\xC7\xFD\xC7\xFE\xC8\x40\xC8\x7E\xC8\xA1\xC8\xFE"), 1571 { 0xF7AA,0xF7AB,0xF7AC,0xF7EA,0xF7EB,0xF848 }, 1572 6, 1573 true, 1574 true, 1575 true, 1576 false, 1577 RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR }, 1578 { RTL_TEXTENCODING_BIG5, 1579 RTL_CONSTASCII_STRINGPARAM("\xA0\x40\xA0\x7E\xA0\xA1\xA0\xFE"), 1580 { 0xEE1B,0xEE59,0xEE5A,0xEEB7 }, 1581 4, 1582 true, 1583 true, 1584 true, 1585 false, 1586 RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR }, 1587 { RTL_TEXTENCODING_MS_950, 1588 RTL_CONSTASCII_STRINGPARAM( 1589 "\xC6\xA1\xC6\xFE\xC7\x40\xC7\x7E\xC7\xA1\xC7\xFE\xC8\x40" 1590 "\xC8\x7E\xC8\xA1\xC8\xFE"), 1591 { 0xF6B1,0xF70E,0xF70F,0xF74D,0xF74E,0xF7AB,0xF7AC,0xF7EA, 1592 0xF7EB,0xF848 }, 1593 10, 1594 true, 1595 true, 1596 true, 1597 false, 1598 RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR }, 1599 { RTL_TEXTENCODING_MS_950, 1600 RTL_CONSTASCII_STRINGPARAM("\xA0\x40\xA0\x7E\xA0\xA1\xA0\xFE"), 1601 { 0xEE1B,0xEE59,0xEE5A,0xEEB7 }, 1602 4, 1603 true, 1604 true, 1605 true, 1606 false, 1607 RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR }, 1608 1609 // Test Unicode beyond BMP: 1610 1611 // FIXME The second m_bForward test (requiring a context) does not 1612 // work for UTF7: 1613 // { RTL_TEXTENCODING_UTF7, 1614 // RTL_CONSTASCII_STRINGPARAM("+2EndEw-"), 1615 // { 0xD849,0xDD13 }, 1616 // 2, 1617 // true, 1618 // true, 1619 // true, 1620 // false, 1621 // RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR }, 1622 { RTL_TEXTENCODING_UTF8, 1623 RTL_CONSTASCII_STRINGPARAM("\xF0\xA2\x94\x93"), 1624 { 0xD849,0xDD13 }, 1625 2, 1626 true, 1627 true, 1628 true, 1629 false, 1630 RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR }, 1631 { RTL_TEXTENCODING_GB_18030, 1632 RTL_CONSTASCII_STRINGPARAM("\x95\x39\xC5\x37"), 1633 { 0xD849,0xDD13 }, 1634 2, 1635 true, 1636 true, 1637 true, 1638 false, 1639 RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR }, 1640 { RTL_TEXTENCODING_BIG5_HKSCS, 1641 RTL_CONSTASCII_STRINGPARAM("\xFA\x5E"), 1642 { 0xD849,0xDD13 }, 1643 2, 1644 true, 1645 false, 1646 true, 1647 false, 1648 RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR }, 1649 1650 // Test GBK (aka CP936): 1651 1652 { RTL_TEXTENCODING_GBK, 1653 RTL_CONSTASCII_STRINGPARAM("\xFD\x7C\xC1\xFA\xFD\x9B"), 1654 { 0x9F76,0x9F99,0x9FA5 }, 1655 3, 1656 true, 1657 true, 1658 true, 1659 false, 1660 RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR }, 1661 { RTL_TEXTENCODING_MS_936, 1662 RTL_CONSTASCII_STRINGPARAM("\xFD\x7C\xC1\xFA\xFD\x9B"), 1663 { 0x9F76,0x9F99,0x9FA5 }, 1664 3, 1665 true, 1666 true, 1667 true, 1668 false, 1669 RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR }, 1670 { RTL_TEXTENCODING_GBK, 1671 RTL_CONSTASCII_STRINGPARAM( 1672 "\xFE\x50\xFE\x54\xFE\x55\xFE\x56" 1673 "\xFE\x57\xFE\x58\xFE\x5A\xFE\x5B\xFE\x5C\xFE\x5D" 1674 "\xFE\x5E\xFE\x5F\xFE\x60\xFE\x62\xFE\x63\xFE\x64" 1675 "\xFE\x65\xFE\x68\xFE\x69\xFE\x6A\xFE\x6B" 1676 "\xFE\x6E\xFE\x6F\xFE\x70\xFE\x71\xFE\x72" 1677 "\xFE\x73\xFE\x74\xFE\x75\xFE\x77\xFE\x78\xFE\x79" 1678 "\xFE\x7A\xFE\x7B\xFE\x7C\xFE\x7D\xFE\x80\xFE\x81" 1679 "\xFE\x82\xFE\x83\xFE\x84\xFE\x85\xFE\x86\xFE\x87\xFE\x88" 1680 "\xFE\x89\xFE\x8A\xFE\x8B\xFE\x8C\xFE\x8D\xFE\x8E\xFE\x8F" 1681 "\xFE\x92\xFE\x93\xFE\x94\xFE\x95\xFE\x96" 1682 "\xFE\x97\xFE\x98\xFE\x99\xFE\x9A\xFE\x9B\xFE\x9C\xFE\x9D" 1683 "\xFE\x9E\xFE\x9F"), 1684 { 0x2E81,0x2E84,0x3473,0x3447,0x2E88,0x2E8B,0x359E,0x361A, 1685 0x360E,0x2E8C,0x2E97,0x396E,0x3918,0x39CF,0x39DF,0x3A73, 1686 0x39D0,0x3B4E,0x3C6E,0x3CE0,0x2EA7,0x2EAA,0x4056,0x415F, 1687 0x2EAE,0x4337,0x2EB3,0x2EB6,0x2EB7,0x43B1,0x43AC,0x2EBB, 1688 0x43DD,0x44D6,0x4661,0x464C,0x4723,0x4729,0x477C,0x478D, 1689 0x2ECA,0x4947,0x497A,0x497D,0x4982,0x4983,0x4985,0x4986, 1690 0x499F,0x499B,0x49B7,0x49B6,0x4CA3,0x4C9F,0x4CA0,0x4CA1, 1691 0x4C77,0x4CA2,0x4D13,0x4D14,0x4D15,0x4D16,0x4D17,0x4D18, 1692 0x4D19,0x4DAE }, 1693 66, 1694 true, 1695 true, 1696 true, 1697 false, 1698 RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR }, 1699 { RTL_TEXTENCODING_EUC_JP, 1700 RTL_CONSTASCII_STRINGPARAM("?"), 1701 { 0xFF0D }, 1702 1, 1703 true, 1704 false, 1705 true, 1706 false, 1707 RTL_UNICODETOTEXT_FLAGS_UNDEFINED_QUESTIONMARK }, 1708 1709 // Test of "JIS X 0208 row 13" (taken from CP932; added to 1710 // ISO-2022-JP and EUC-JP; 74 of the 83 characters introduce 1711 // mappings to new Unicode characters): 1712 { RTL_TEXTENCODING_MS_932, 1713 RTL_CONSTASCII_STRINGPARAM( 1714 "\x87\x40\x87\x41\x87\x42\x87\x43\x87\x44\x87\x45\x87\x46" 1715 "\x87\x47\x87\x48\x87\x49\x87\x4A\x87\x4B\x87\x4C\x87\x4D" 1716 "\x87\x4E\x87\x4F\x87\x50\x87\x51\x87\x52\x87\x53\x87\x54" 1717 "\x87\x55\x87\x56\x87\x57\x87\x58\x87\x59\x87\x5A\x87\x5B" 1718 "\x87\x5C\x87\x5D\x87\x5F\x87\x60\x87\x61\x87\x62\x87\x63" 1719 "\x87\x64\x87\x65\x87\x66\x87\x67\x87\x68\x87\x69\x87\x6A" 1720 "\x87\x6B\x87\x6C\x87\x6D\x87\x6E\x87\x6F\x87\x70\x87\x71" 1721 "\x87\x72\x87\x73\x87\x74\x87\x75\x87\x7E\x87\x80\x87\x81" 1722 "\x87\x82\x87\x83\x87\x84\x87\x85\x87\x86\x87\x87\x87\x88" 1723 "\x87\x89\x87\x8A\x87\x8B\x87\x8C\x87\x8D\x87\x8E\x87\x8F" 1724 "\x87\x90\x87\x91\x87\x92\x87\x93\x87\x94\x87\x95\x87\x96" 1725 "\x87\x97\x87\x98\x87\x99\x87\x9A\x87\x9B\x87\x9C"), 1726 { 0x2460,0x2461,0x2462,0x2463,0x2464,0x2465,0x2466,0x2467,0x2468, 1727 0x2469,0x246A,0x246B,0x246C,0x246D,0x246E,0x246F,0x2470,0x2471, 1728 0x2472,0x2473,0x2160,0x2161,0x2162,0x2163,0x2164,0x2165,0x2166, 1729 0x2167,0x2168,0x2169,0x3349,0x3314,0x3322,0x334D,0x3318,0x3327, 1730 0x3303,0x3336,0x3351,0x3357,0x330D,0x3326,0x3323,0x332B,0x334A, 1731 0x333B,0x339C,0x339D,0x339E,0x338E,0x338F,0x33C4,0x33A1,0x337B, 1732 0x301D,0x301F,0x2116,0x33CD,0x2121,0x32A4,0x32A5,0x32A6,0x32A7, 1733 0x32A8,0x3231,0x3232,0x3239,0x337E,0x337D,0x337C,0x2252,0x2261, 1734 0x222B,0x222E,0x2211,0x221A,0x22A5,0x2220,0x221F,0x22BF,0x2235, 1735 0x2229,0x222A }, 1736 83, 1737 true, 1738 true, 1739 false, 1740 false, 1741 RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR }, 1742 { RTL_TEXTENCODING_SHIFT_JIS, 1743 RTL_CONSTASCII_STRINGPARAM( 1744 "\x87\x40\x87\x41\x87\x42\x87\x43\x87\x44\x87\x45\x87\x46" 1745 "\x87\x47\x87\x48\x87\x49\x87\x4A\x87\x4B\x87\x4C\x87\x4D" 1746 "\x87\x4E\x87\x4F\x87\x50\x87\x51\x87\x52\x87\x53\x87\x54" 1747 "\x87\x55\x87\x56\x87\x57\x87\x58\x87\x59\x87\x5A\x87\x5B" 1748 "\x87\x5C\x87\x5D\x87\x5F\x87\x60\x87\x61\x87\x62\x87\x63" 1749 "\x87\x64\x87\x65\x87\x66\x87\x67\x87\x68\x87\x69\x87\x6A" 1750 "\x87\x6B\x87\x6C\x87\x6D\x87\x6E\x87\x6F\x87\x70\x87\x71" 1751 "\x87\x72\x87\x73\x87\x74\x87\x75\x87\x7E\x87\x80\x87\x81" 1752 "\x87\x82\x87\x83\x87\x84\x87\x85\x87\x86\x87\x87\x87\x88" 1753 "\x87\x89\x87\x8A\x87\x8B\x87\x8C\x87\x8D\x87\x8E\x87\x8F" 1754 "\x87\x90\x87\x91\x87\x92\x87\x93\x87\x94\x87\x95\x87\x96" 1755 "\x87\x97\x87\x98\x87\x99\x87\x9A\x87\x9B\x87\x9C"), 1756 { 0x2460,0x2461,0x2462,0x2463,0x2464,0x2465,0x2466,0x2467,0x2468, 1757 0x2469,0x246A,0x246B,0x246C,0x246D,0x246E,0x246F,0x2470,0x2471, 1758 0x2472,0x2473,0x2160,0x2161,0x2162,0x2163,0x2164,0x2165,0x2166, 1759 0x2167,0x2168,0x2169,0x3349,0x3314,0x3322,0x334D,0x3318,0x3327, 1760 0x3303,0x3336,0x3351,0x3357,0x330D,0x3326,0x3323,0x332B,0x334A, 1761 0x333B,0x339C,0x339D,0x339E,0x338E,0x338F,0x33C4,0x33A1,0x337B, 1762 0x301D,0x301F,0x2116,0x33CD,0x2121,0x32A4,0x32A5,0x32A6,0x32A7, 1763 0x32A8,0x3231,0x3232,0x3239,0x337E,0x337D,0x337C,0x2252,0x2261, 1764 0x222B,0x222E,0x2211,0x221A,0x22A5,0x2220,0x221F,0x22BF,0x2235, 1765 0x2229,0x222A }, 1766 83, 1767 true, 1768 true, 1769 false, 1770 false, 1771 RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR }, 1772 { RTL_TEXTENCODING_ISO_2022_JP, 1773 RTL_CONSTASCII_STRINGPARAM( 1774 "\x1B$B\x2D\x21\x2D\x22\x2D\x23\x2D\x24\x2D\x25\x2D\x26" 1775 "\x2D\x27\x2D\x28\x2D\x29\x2D\x2A\x2D\x2B\x2D\x2C\x2D\x2D" 1776 "\x2D\x2E\x2D\x2F\x2D\x30\x2D\x31\x2D\x32\x2D\x33\x2D\x34" 1777 "\x2D\x35\x2D\x36\x2D\x37\x2D\x38\x2D\x39\x2D\x3A\x2D\x3B" 1778 "\x2D\x3C\x2D\x3D\x2D\x3E\x2D\x40\x2D\x41\x2D\x42\x2D\x43" 1779 "\x2D\x44\x2D\x45\x2D\x46\x2D\x47\x2D\x48\x2D\x49\x2D\x4A" 1780 "\x2D\x4B\x2D\x4C\x2D\x4D\x2D\x4E\x2D\x4F\x2D\x50\x2D\x51" 1781 "\x2D\x52\x2D\x53\x2D\x54\x2D\x55\x2D\x56\x2D\x5F\x2D\x60" 1782 "\x2D\x61\x2D\x62\x2D\x63\x2D\x64\x2D\x65\x2D\x66\x2D\x67" 1783 "\x2D\x68\x2D\x69\x2D\x6A\x2D\x6B\x2D\x6C\x2D\x6D\x2D\x6E" 1784 "\x2D\x6F\x2D\x70\x2D\x71\x2D\x72\x2D\x73\x2D\x74\x2D\x75" 1785 "\x2D\x76\x2D\x77\x2D\x78\x2D\x79\x2D\x7A\x2D\x7B\x2D\x7C" 1786 "\x1B(B"), 1787 { 0x2460,0x2461,0x2462,0x2463,0x2464,0x2465,0x2466,0x2467,0x2468, 1788 0x2469,0x246A,0x246B,0x246C,0x246D,0x246E,0x246F,0x2470,0x2471, 1789 0x2472,0x2473,0x2160,0x2161,0x2162,0x2163,0x2164,0x2165,0x2166, 1790 0x2167,0x2168,0x2169,0x3349,0x3314,0x3322,0x334D,0x3318,0x3327, 1791 0x3303,0x3336,0x3351,0x3357,0x330D,0x3326,0x3323,0x332B,0x334A, 1792 0x333B,0x339C,0x339D,0x339E,0x338E,0x338F,0x33C4,0x33A1,0x337B, 1793 0x301D,0x301F,0x2116,0x33CD,0x2121,0x32A4,0x32A5,0x32A6,0x32A7, 1794 0x32A8,0x3231,0x3232,0x3239,0x337E,0x337D,0x337C,0x2252,0x2261, 1795 0x222B,0x222E,0x2211,0x221A,0x22A5,0x2220,0x221F,0x22BF,0x2235, 1796 0x2229,0x222A }, 1797 83, 1798 false, 1799 true, 1800 false, 1801 false, 1802 RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR }, 1803 { RTL_TEXTENCODING_ISO_2022_JP, 1804 RTL_CONSTASCII_STRINGPARAM( 1805 "\x1B$B\x2D\x21\x2D\x22\x2D\x23\x2D\x24\x2D\x25\x2D\x26" 1806 "\x2D\x27\x2D\x28\x2D\x29\x2D\x2A\x2D\x2B\x2D\x2C\x2D\x2D" 1807 "\x2D\x2E\x2D\x2F\x2D\x30\x2D\x31\x2D\x32\x2D\x33\x2D\x34" 1808 "\x2D\x35\x2D\x36\x2D\x37\x2D\x38\x2D\x39\x2D\x3A\x2D\x3B" 1809 "\x2D\x3C\x2D\x3D\x2D\x3E\x2D\x40\x2D\x41\x2D\x42\x2D\x43" 1810 "\x2D\x44\x2D\x45\x2D\x46\x2D\x47\x2D\x48\x2D\x49\x2D\x4A" 1811 "\x2D\x4B\x2D\x4C\x2D\x4D\x2D\x4E\x2D\x4F\x2D\x50\x2D\x51" 1812 "\x2D\x52\x2D\x53\x2D\x54\x2D\x55\x2D\x56\x2D\x5F\x2D\x60" 1813 "\x2D\x61\x2D\x62\x2D\x63\x2D\x64\x2D\x65\x2D\x66\x2D\x67" 1814 "\x2D\x68\x2D\x69\x2D\x6A\x2D\x6B\x2D\x6C\x2D\x6D\x2D\x6E" 1815 "\x2D\x6F\x2D\x73\x2D\x74\x2D\x78\x2D\x79\x1B(B"), 1816 { 0x2460,0x2461,0x2462,0x2463,0x2464,0x2465,0x2466,0x2467,0x2468, 1817 0x2469,0x246A,0x246B,0x246C,0x246D,0x246E,0x246F,0x2470,0x2471, 1818 0x2472,0x2473,0x2160,0x2161,0x2162,0x2163,0x2164,0x2165,0x2166, 1819 0x2167,0x2168,0x2169,0x3349,0x3314,0x3322,0x334D,0x3318,0x3327, 1820 0x3303,0x3336,0x3351,0x3357,0x330D,0x3326,0x3323,0x332B,0x334A, 1821 0x333B,0x339C,0x339D,0x339E,0x338E,0x338F,0x33C4,0x33A1,0x337B, 1822 0x301D,0x301F,0x2116,0x33CD,0x2121,0x32A4,0x32A5,0x32A6,0x32A7, 1823 0x32A8,0x3231,0x3232,0x3239,0x337E,0x337D,0x337C,0x222E,0x2211, 1824 0x221F,0x22BF }, 1825 74, 1826 false, 1827 true, 1828 true, 1829 false, 1830 RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR }, 1831 { RTL_TEXTENCODING_EUC_JP, 1832 RTL_CONSTASCII_STRINGPARAM( 1833 "\xAD\xA1\xAD\xA2\xAD\xA3\xAD\xA4\xAD\xA5\xAD\xA6\xAD\xA7" 1834 "\xAD\xA8\xAD\xA9\xAD\xAA\xAD\xAB\xAD\xAC\xAD\xAD\xAD\xAE" 1835 "\xAD\xAF\xAD\xB0\xAD\xB1\xAD\xB2\xAD\xB3\xAD\xB4\xAD\xB5" 1836 "\xAD\xB6\xAD\xB7\xAD\xB8\xAD\xB9\xAD\xBA\xAD\xBB\xAD\xBC" 1837 "\xAD\xBD\xAD\xBE\xAD\xC0\xAD\xC1\xAD\xC2\xAD\xC3\xAD\xC4" 1838 "\xAD\xC5\xAD\xC6\xAD\xC7\xAD\xC8\xAD\xC9\xAD\xCA\xAD\xCB" 1839 "\xAD\xCC\xAD\xCD\xAD\xCE\xAD\xCF\xAD\xD0\xAD\xD1\xAD\xD2" 1840 "\xAD\xD3\xAD\xD4\xAD\xD5\xAD\xD6\xAD\xDF\xAD\xE0\xAD\xE1" 1841 "\xAD\xE2\xAD\xE3\xAD\xE4\xAD\xE5\xAD\xE6\xAD\xE7\xAD\xE8" 1842 "\xAD\xE9\xAD\xEA\xAD\xEB\xAD\xEC\xAD\xED\xAD\xEE\xAD\xEF" 1843 "\xAD\xF0\xAD\xF1\xAD\xF2\xAD\xF3\xAD\xF4\xAD\xF5\xAD\xF6" 1844 "\xAD\xF7\xAD\xF8\xAD\xF9\xAD\xFA\xAD\xFB\xAD\xFC"), 1845 { 0x2460,0x2461,0x2462,0x2463,0x2464,0x2465,0x2466,0x2467,0x2468, 1846 0x2469,0x246A,0x246B,0x246C,0x246D,0x246E,0x246F,0x2470,0x2471, 1847 0x2472,0x2473,0x2160,0x2161,0x2162,0x2163,0x2164,0x2165,0x2166, 1848 0x2167,0x2168,0x2169,0x3349,0x3314,0x3322,0x334D,0x3318,0x3327, 1849 0x3303,0x3336,0x3351,0x3357,0x330D,0x3326,0x3323,0x332B,0x334A, 1850 0x333B,0x339C,0x339D,0x339E,0x338E,0x338F,0x33C4,0x33A1,0x337B, 1851 0x301D,0x301F,0x2116,0x33CD,0x2121,0x32A4,0x32A5,0x32A6,0x32A7, 1852 0x32A8,0x3231,0x3232,0x3239,0x337E,0x337D,0x337C,0x2252,0x2261, 1853 0x222B,0x222E,0x2211,0x221A,0x22A5,0x2220,0x221F,0x22BF,0x2235, 1854 0x2229,0x222A }, 1855 83, 1856 true, 1857 true, 1858 false, 1859 false, 1860 RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR }, 1861 { RTL_TEXTENCODING_EUC_JP, 1862 RTL_CONSTASCII_STRINGPARAM( 1863 "\xAD\xA1\xAD\xA2\xAD\xA3\xAD\xA4\xAD\xA5\xAD\xA6\xAD\xA7" 1864 "\xAD\xA8\xAD\xA9\xAD\xAA\xAD\xAB\xAD\xAC\xAD\xAD\xAD\xAE" 1865 "\xAD\xAF\xAD\xB0\xAD\xB1\xAD\xB2\xAD\xB3\xAD\xB4\xAD\xB5" 1866 "\xAD\xB6\xAD\xB7\xAD\xB8\xAD\xB9\xAD\xBA\xAD\xBB\xAD\xBC" 1867 "\xAD\xBD\xAD\xBE\xAD\xC0\xAD\xC1\xAD\xC2\xAD\xC3\xAD\xC4" 1868 "\xAD\xC5\xAD\xC6\xAD\xC7\xAD\xC8\xAD\xC9\xAD\xCA\xAD\xCB" 1869 "\xAD\xCC\xAD\xCD\xAD\xCE\xAD\xCF\xAD\xD0\xAD\xD1\xAD\xD2" 1870 "\xAD\xD3\xAD\xD4\xAD\xD5\xAD\xD6\xAD\xDF\xAD\xE0\xAD\xE1" 1871 "\xAD\xE2\xAD\xE3\xAD\xE4\xAD\xE5\xAD\xE6\xAD\xE7\xAD\xE8" 1872 "\xAD\xE9\xAD\xEA\xAD\xEB\xAD\xEC\xAD\xED\xAD\xEE\xAD\xEF" 1873 "\xAD\xF3\xAD\xF4\xAD\xF8\xAD\xF9"), 1874 { 0x2460,0x2461,0x2462,0x2463,0x2464,0x2465,0x2466,0x2467,0x2468, 1875 0x2469,0x246A,0x246B,0x246C,0x246D,0x246E,0x246F,0x2470,0x2471, 1876 0x2472,0x2473,0x2160,0x2161,0x2162,0x2163,0x2164,0x2165,0x2166, 1877 0x2167,0x2168,0x2169,0x3349,0x3314,0x3322,0x334D,0x3318,0x3327, 1878 0x3303,0x3336,0x3351,0x3357,0x330D,0x3326,0x3323,0x332B,0x334A, 1879 0x333B,0x339C,0x339D,0x339E,0x338E,0x338F,0x33C4,0x33A1,0x337B, 1880 0x301D,0x301F,0x2116,0x33CD,0x2121,0x32A4,0x32A5,0x32A6,0x32A7, 1881 0x32A8,0x3231,0x3232,0x3239,0x337E,0x337D,0x337C,0x222E,0x2211, 1882 0x221F,0x22BF }, 1883 74, 1884 true, 1885 true, 1886 true, 1887 false, 1888 RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR }, 1889 1890 { RTL_TEXTENCODING_EUC_JP, 1891 RTL_CONSTASCII_STRINGPARAM("\xB9\xF5"), 1892 { 0x9ED2 }, 1893 1, 1894 true, 1895 true, 1896 true, 1897 false, 1898 RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR }, 1899 1900 // Test ISO-8859-x/MS-125x range 0x80--9F: 1901 1902 { RTL_TEXTENCODING_ISO_8859_1, 1903 RTL_CONSTASCII_STRINGPARAM( 1904 "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E" 1905 "\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D" 1906 "\x9E\x9F"), 1907 { 0x0080,0x0081,0x0082,0x0083,0x0084,0x0085,0x0086,0x0087,0x0088, 1908 0x0089,0x008A,0x008B,0x008C,0x008D,0x008E,0x008F,0x0090,0x0091, 1909 0x0092,0x0093,0x0094,0x0095,0x0096,0x0097,0x0098,0x0099,0x009A, 1910 0x009B,0x009C,0x009D,0x009E,0x009F }, 1911 32, 1912 true, 1913 true, 1914 true, 1915 false, 1916 RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR }, 1917 { RTL_TEXTENCODING_ISO_8859_2, 1918 RTL_CONSTASCII_STRINGPARAM( 1919 "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E" 1920 "\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D" 1921 "\x9E\x9F"), 1922 { 0x0080,0x0081,0x0082,0x0083,0x0084,0x0085,0x0086,0x0087,0x0088, 1923 0x0089,0x008A,0x008B,0x008C,0x008D,0x008E,0x008F,0x0090,0x0091, 1924 0x0092,0x0093,0x0094,0x0095,0x0096,0x0097,0x0098,0x0099,0x009A, 1925 0x009B,0x009C,0x009D,0x009E,0x009F }, 1926 32, 1927 true, 1928 true, 1929 true, 1930 false, 1931 RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR }, 1932 { RTL_TEXTENCODING_ISO_8859_3, 1933 RTL_CONSTASCII_STRINGPARAM( 1934 "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E" 1935 "\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D" 1936 "\x9E\x9F"), 1937 { 0x0080,0x0081,0x0082,0x0083,0x0084,0x0085,0x0086,0x0087,0x0088, 1938 0x0089,0x008A,0x008B,0x008C,0x008D,0x008E,0x008F,0x0090,0x0091, 1939 0x0092,0x0093,0x0094,0x0095,0x0096,0x0097,0x0098,0x0099,0x009A, 1940 0x009B,0x009C,0x009D,0x009E,0x009F }, 1941 32, 1942 true, 1943 true, 1944 true, 1945 false, 1946 RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR }, 1947 { RTL_TEXTENCODING_ISO_8859_4, 1948 RTL_CONSTASCII_STRINGPARAM( 1949 "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E" 1950 "\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D" 1951 "\x9E\x9F"), 1952 { 0x0080,0x0081,0x0082,0x0083,0x0084,0x0085,0x0086,0x0087,0x0088, 1953 0x0089,0x008A,0x008B,0x008C,0x008D,0x008E,0x008F,0x0090,0x0091, 1954 0x0092,0x0093,0x0094,0x0095,0x0096,0x0097,0x0098,0x0099,0x009A, 1955 0x009B,0x009C,0x009D,0x009E,0x009F }, 1956 32, 1957 true, 1958 true, 1959 true, 1960 false, 1961 RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR }, 1962 { RTL_TEXTENCODING_ISO_8859_5, 1963 RTL_CONSTASCII_STRINGPARAM( 1964 "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E" 1965 "\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D" 1966 "\x9E\x9F"), 1967 { 0x0080,0x0081,0x0082,0x0083,0x0084,0x0085,0x0086,0x0087,0x0088, 1968 0x0089,0x008A,0x008B,0x008C,0x008D,0x008E,0x008F,0x0090,0x0091, 1969 0x0092,0x0093,0x0094,0x0095,0x0096,0x0097,0x0098,0x0099,0x009A, 1970 0x009B,0x009C,0x009D,0x009E,0x009F }, 1971 32, 1972 true, 1973 true, 1974 true, 1975 false, 1976 RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR }, 1977 { RTL_TEXTENCODING_ISO_8859_6, 1978 RTL_CONSTASCII_STRINGPARAM( 1979 "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E" 1980 "\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D" 1981 "\x9E\x9F"), 1982 { 0x0080,0x0081,0x0082,0x0083,0x0084,0x0085,0x0086,0x0087,0x0088, 1983 0x0089,0x008A,0x008B,0x008C,0x008D,0x008E,0x008F,0x0090,0x0091, 1984 0x0092,0x0093,0x0094,0x0095,0x0096,0x0097,0x0098,0x0099,0x009A, 1985 0x009B,0x009C,0x009D,0x009E,0x009F }, 1986 32, 1987 true, 1988 true, 1989 true, 1990 false, 1991 RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR }, 1992 { RTL_TEXTENCODING_ISO_8859_7, 1993 RTL_CONSTASCII_STRINGPARAM( 1994 "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E" 1995 "\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D" 1996 "\x9E\x9F"), 1997 { 0x0080,0x0081,0x0082,0x0083,0x0084,0x0085,0x0086,0x0087,0x0088, 1998 0x0089,0x008A,0x008B,0x008C,0x008D,0x008E,0x008F,0x0090,0x0091, 1999 0x0092,0x0093,0x0094,0x0095,0x0096,0x0097,0x0098,0x0099,0x009A, 2000 0x009B,0x009C,0x009D,0x009E,0x009F }, 2001 32, 2002 true, 2003 true, 2004 true, 2005 false, 2006 RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR }, 2007 { RTL_TEXTENCODING_ISO_8859_8, 2008 RTL_CONSTASCII_STRINGPARAM( 2009 "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E" 2010 "\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D" 2011 "\x9E\x9F"), 2012 { 0x0080,0x0081,0x0082,0x0083,0x0084,0x0085,0x0086,0x0087,0x0088, 2013 0x0089,0x008A,0x008B,0x008C,0x008D,0x008E,0x008F,0x0090,0x0091, 2014 0x0092,0x0093,0x0094,0x0095,0x0096,0x0097,0x0098,0x0099,0x009A, 2015 0x009B,0x009C,0x009D,0x009E,0x009F }, 2016 32, 2017 true, 2018 true, 2019 true, 2020 false, 2021 RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR }, 2022 { RTL_TEXTENCODING_ISO_8859_9, 2023 RTL_CONSTASCII_STRINGPARAM( 2024 "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E" 2025 "\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D" 2026 "\x9E\x9F"), 2027 { 0x0080,0x0081,0x0082,0x0083,0x0084,0x0085,0x0086,0x0087,0x0088, 2028 0x0089,0x008A,0x008B,0x008C,0x008D,0x008E,0x008F,0x0090,0x0091, 2029 0x0092,0x0093,0x0094,0x0095,0x0096,0x0097,0x0098,0x0099,0x009A, 2030 0x009B,0x009C,0x009D,0x009E,0x009F }, 2031 32, 2032 true, 2033 true, 2034 true, 2035 false, 2036 RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR }, 2037 { RTL_TEXTENCODING_ISO_8859_14, 2038 RTL_CONSTASCII_STRINGPARAM( 2039 "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E" 2040 "\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D" 2041 "\x9E\x9F"), 2042 { 0x0080,0x0081,0x0082,0x0083,0x0084,0x0085,0x0086,0x0087,0x0088, 2043 0x0089,0x008A,0x008B,0x008C,0x008D,0x008E,0x008F,0x0090,0x0091, 2044 0x0092,0x0093,0x0094,0x0095,0x0096,0x0097,0x0098,0x0099,0x009A, 2045 0x009B,0x009C,0x009D,0x009E,0x009F }, 2046 32, 2047 true, 2048 true, 2049 true, 2050 false, 2051 RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR }, 2052 { RTL_TEXTENCODING_ISO_8859_15, 2053 RTL_CONSTASCII_STRINGPARAM( 2054 "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E" 2055 "\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D" 2056 "\x9E\x9F"), 2057 { 0x0080,0x0081,0x0082,0x0083,0x0084,0x0085,0x0086,0x0087,0x0088, 2058 0x0089,0x008A,0x008B,0x008C,0x008D,0x008E,0x008F,0x0090,0x0091, 2059 0x0092,0x0093,0x0094,0x0095,0x0096,0x0097,0x0098,0x0099,0x009A, 2060 0x009B,0x009C,0x009D,0x009E,0x009F }, 2061 32, 2062 true, 2063 true, 2064 true, 2065 false, 2066 RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR }, 2067 { RTL_TEXTENCODING_MS_874, 2068 RTL_CONSTASCII_STRINGPARAM(""), 2069 { 0x0080,0x0081,0x0082,0x0083,0x0084,0x0085,0x0086,0x0087,0x0088, 2070 0x0089,0x008A,0x008B,0x008C,0x008D,0x008E,0x008F,0x0090,0x0091, 2071 0x0092,0x0093,0x0094,0x0095,0x0096,0x0097,0x0098,0x0099,0x009A, 2072 0x009B,0x009C,0x009D,0x009E,0x009F }, 2073 32, 2074 true, 2075 false, 2076 true, 2077 false, 2078 RTL_UNICODETOTEXT_FLAGS_UNDEFINED_IGNORE }, 2079 { RTL_TEXTENCODING_MS_1250, 2080 RTL_CONSTASCII_STRINGPARAM(""), 2081 { 0x0080,0x0081,0x0082,0x0083,0x0084,0x0085,0x0086,0x0087,0x0088, 2082 0x0089,0x008A,0x008B,0x008C,0x008D,0x008E,0x008F,0x0090,0x0091, 2083 0x0092,0x0093,0x0094,0x0095,0x0096,0x0097,0x0098,0x0099,0x009A, 2084 0x009B,0x009C,0x009D,0x009E,0x009F }, 2085 32, 2086 true, 2087 false, 2088 true, 2089 false, 2090 RTL_UNICODETOTEXT_FLAGS_UNDEFINED_IGNORE }, 2091 { RTL_TEXTENCODING_MS_1251, 2092 RTL_CONSTASCII_STRINGPARAM(""), 2093 { 0x0080,0x0081,0x0082,0x0083,0x0084,0x0085,0x0086,0x0087,0x0088, 2094 0x0089,0x008A,0x008B,0x008C,0x008D,0x008E,0x008F,0x0090,0x0091, 2095 0x0092,0x0093,0x0094,0x0095,0x0096,0x0097,0x0098,0x0099,0x009A, 2096 0x009B,0x009C,0x009D,0x009E,0x009F }, 2097 32, 2098 true, 2099 false, 2100 true, 2101 false, 2102 RTL_UNICODETOTEXT_FLAGS_UNDEFINED_IGNORE }, 2103 { RTL_TEXTENCODING_MS_1252, 2104 RTL_CONSTASCII_STRINGPARAM(""), 2105 { 0x0080,0x0081,0x0082,0x0083,0x0084,0x0085,0x0086,0x0087,0x0088, 2106 0x0089,0x008A,0x008B,0x008C,0x008D,0x008E,0x008F,0x0090,0x0091, 2107 0x0092,0x0093,0x0094,0x0095,0x0096,0x0097,0x0098,0x0099,0x009A, 2108 0x009B,0x009C,0x009D,0x009E,0x009F }, 2109 32, 2110 true, 2111 false, 2112 true, 2113 false, 2114 RTL_UNICODETOTEXT_FLAGS_UNDEFINED_IGNORE }, 2115 { RTL_TEXTENCODING_MS_1253, 2116 RTL_CONSTASCII_STRINGPARAM(""), 2117 { 0x0080,0x0081,0x0082,0x0083,0x0084,0x0085,0x0086,0x0087,0x0088, 2118 0x0089,0x008A,0x008B,0x008C,0x008D,0x008E,0x008F,0x0090,0x0091, 2119 0x0092,0x0093,0x0094,0x0095,0x0096,0x0097,0x0098,0x0099,0x009A, 2120 0x009B,0x009C,0x009D,0x009E,0x009F }, 2121 32, 2122 true, 2123 false, 2124 true, 2125 false, 2126 RTL_UNICODETOTEXT_FLAGS_UNDEFINED_IGNORE }, 2127 { RTL_TEXTENCODING_MS_1254, 2128 RTL_CONSTASCII_STRINGPARAM(""), 2129 { 0x0080,0x0081,0x0082,0x0083,0x0084,0x0085,0x0086,0x0087,0x0088, 2130 0x0089,0x008A,0x008B,0x008C,0x008D,0x008E,0x008F,0x0090,0x0091, 2131 0x0092,0x0093,0x0094,0x0095,0x0096,0x0097,0x0098,0x0099,0x009A, 2132 0x009B,0x009C,0x009D,0x009E,0x009F }, 2133 32, 2134 true, 2135 false, 2136 true, 2137 false, 2138 RTL_UNICODETOTEXT_FLAGS_UNDEFINED_IGNORE }, 2139 { RTL_TEXTENCODING_MS_1255, 2140 RTL_CONSTASCII_STRINGPARAM(""), 2141 { 0x0080,0x0081,0x0082,0x0083,0x0084,0x0085,0x0086,0x0087,0x0088, 2142 0x0089,0x008A,0x008B,0x008C,0x008D,0x008E,0x008F,0x0090,0x0091, 2143 0x0092,0x0093,0x0094,0x0095,0x0096,0x0097,0x0098,0x0099,0x009A, 2144 0x009B,0x009C,0x009D,0x009E,0x009F }, 2145 32, 2146 true, 2147 false, 2148 true, 2149 false, 2150 RTL_UNICODETOTEXT_FLAGS_UNDEFINED_IGNORE }, 2151 { RTL_TEXTENCODING_MS_1256, 2152 RTL_CONSTASCII_STRINGPARAM(""), 2153 { 0x0080,0x0081,0x0082,0x0083,0x0084,0x0085,0x0086,0x0087,0x0088, 2154 0x0089,0x008A,0x008B,0x008C,0x008D,0x008E,0x008F,0x0090,0x0091, 2155 0x0092,0x0093,0x0094,0x0095,0x0096,0x0097,0x0098,0x0099,0x009A, 2156 0x009B,0x009C,0x009D,0x009E,0x009F }, 2157 32, 2158 true, 2159 false, 2160 true, 2161 false, 2162 RTL_UNICODETOTEXT_FLAGS_UNDEFINED_IGNORE }, 2163 { RTL_TEXTENCODING_MS_1257, 2164 RTL_CONSTASCII_STRINGPARAM(""), 2165 { 0x0080,0x0081,0x0082,0x0083,0x0084,0x0085,0x0086,0x0087,0x0088, 2166 0x0089,0x008A,0x008B,0x008C,0x008D,0x008E,0x008F,0x0090,0x0091, 2167 0x0092,0x0093,0x0094,0x0095,0x0096,0x0097,0x0098,0x0099,0x009A, 2168 0x009B,0x009C,0x009D,0x009E,0x009F }, 2169 32, 2170 true, 2171 false, 2172 true, 2173 false, 2174 RTL_UNICODETOTEXT_FLAGS_UNDEFINED_IGNORE }, 2175 { RTL_TEXTENCODING_MS_1258, 2176 RTL_CONSTASCII_STRINGPARAM(""), 2177 { 0x0080,0x0081,0x0082,0x0083,0x0084,0x0085,0x0086,0x0087,0x0088, 2178 0x0089,0x008A,0x008B,0x008C,0x008D,0x008E,0x008F,0x0090,0x0091, 2179 0x0092,0x0093,0x0094,0x0095,0x0096,0x0097,0x0098,0x0099,0x009A, 2180 0x009B,0x009C,0x009D,0x009E,0x009F }, 2181 32, 2182 true, 2183 false, 2184 true, 2185 false, 2186 RTL_UNICODETOTEXT_FLAGS_UNDEFINED_IGNORE }, 2187 { RTL_TEXTENCODING_MS_949, 2188 RTL_CONSTASCII_STRINGPARAM( 2189 "\xB0\xA1\xB0\xA2\x81\x41\x81\x42\xB0\xA3\x81\x43\x81\x44" 2190 "\xB0\xA4\xB0\xA5\xB0\xA6\xB0\xA7\x81\x45\x81\x46\x81\x47" 2191 "\x81\x48\x81\x49\xB0\xA8\xB0\xA9\xB0\xAA\xB0\xAB\xB0\xAC" 2192 "\xB0\xAD\xB0\xAE\xB0\xAF\x81\x4A\xB0\xB0\xB0\xB1\xB0\xB2"), 2193 { 0xAC00,0xAC01,0xAC02,0xAC03,0xAC04,0xAC05,0xAC06,0xAC07,0xAC08, 2194 0xAC09,0xAC0A,0xAC0B,0xAC0C,0xAC0D,0xAC0E,0xAC0F,0xAC10,0xAC11, 2195 0xAC12,0xAC13,0xAC14,0xAC15,0xAC16,0xAC17,0xAC18,0xAC19,0xAC1A, 2196 0xAC1B }, 2197 28, 2198 true, 2199 true, 2200 true, 2201 false, 2202 RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR }, 2203 { RTL_TEXTENCODING_MS_949, 2204 RTL_CONSTASCII_STRINGPARAM( 2205 "\xC9\xA1\xC9\xA2\xC9\xA3\xC9\xFC\xC9\xFD\xC9\xFE" 2206 "\xFE\xA1\xFE\xA2\xFE\xA3\xFE\xFC\xFE\xFD\xFE\xFE"), 2207 { 0xE000,0xE001,0xE002,0xE05B,0xE05C,0xE05D, 2208 0xE05E,0xE05F,0xE060,0xE0B9,0xE0BA,0xE0BB }, 2209 12, 2210 true, 2211 true, 2212 true, 2213 false, 2214 RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR }, 2215 { RTL_TEXTENCODING_EUC_KR, 2216 RTL_CONSTASCII_STRINGPARAM( 2217 "\xB0\xA1\xB0\xA2" "\xB0\xA3" 2218 "\xB0\xA4\xB0\xA5\xB0\xA6\xB0\xA7" 2219 "\xB0\xA8\xB0\xA9\xB0\xAA\xB0\xAB\xB0\xAC" 2220 "\xB0\xAD\xB0\xAE\xB0\xAF" "\xB0\xB0\xB0\xB1\xB0\xB2"), 2221 { 0xAC00,0xAC01, 0xAC04, 0xAC07,0xAC08, 2222 0xAC09,0xAC0A, 0xAC10,0xAC11, 2223 0xAC12,0xAC13,0xAC14,0xAC15,0xAC16,0xAC17, 0xAC19,0xAC1A, 2224 0xAC1B }, 2225 18, 2226 true, 2227 true, 2228 true, 2229 false, 2230 RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR }, 2231 { RTL_TEXTENCODING_EUC_KR, 2232 RTL_CONSTASCII_STRINGPARAM( 2233 "\xB0\xA1\xB0\xA2" "\xB0\xA3" 2234 "\xB0\xA4\xB0\xA5\xB0\xA6\xB0\xA7" 2235 "\xB0\xA8\xB0\xA9\xB0\xAA\xB0\xAB\xB0\xAC" 2236 "\xB0\xAD\xB0\xAE\xB0\xAF" "\xB0\xB0\xB0\xB1\xB0\xB2"), 2237 { 0xAC00,0xAC01,0xAC02,0xAC03,0xAC04,0xAC05,0xAC06,0xAC07,0xAC08, 2238 0xAC09,0xAC0A,0xAC0B,0xAC0C,0xAC0D,0xAC0E,0xAC0F,0xAC10,0xAC11, 2239 0xAC12,0xAC13,0xAC14,0xAC15,0xAC16,0xAC17,0xAC18,0xAC19,0xAC1A, 2240 0xAC1B }, 2241 28, 2242 true, 2243 false, 2244 true, 2245 false, 2246 RTL_UNICODETOTEXT_FLAGS_UNDEFINED_IGNORE }, 2247 { RTL_TEXTENCODING_EUC_KR, 2248 RTL_CONSTASCII_STRINGPARAM( 2249 "\xC9\xA1\xC9\xA2\xC9\xA3\xC9\xFC\xC9\xFD\xC9\xFE" 2250 "\xFE\xA1\xFE\xA2\xFE\xA3\xFE\xFC\xFE\xFD\xFE\xFE"), 2251 { 0xE000,0xE001,0xE002,0xE05B,0xE05C,0xE05D, 2252 0xE05E,0xE05F,0xE060,0xE0B9,0xE0BA,0xE0BB }, 2253 12, 2254 true, 2255 true, 2256 true, 2257 false, 2258 RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR }, 2259 2260 // Test UTF-8: 2261 2262 { RTL_TEXTENCODING_UTF8, 2263 RTL_CONSTASCII_STRINGPARAM("\x00"), 2264 { 0x0000 }, 2265 1, 2266 false, 2267 true, 2268 true, 2269 false, 2270 RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR }, 2271 { RTL_TEXTENCODING_UTF8, 2272 RTL_CONSTASCII_STRINGPARAM("\xEF\xBB\xBF"), 2273 { 0xFEFF }, 2274 1, 2275 false, 2276 true, 2277 true, 2278 false, 2279 RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR }, 2280 { RTL_TEXTENCODING_UTF8, 2281 RTL_CONSTASCII_STRINGPARAM("\xEF\xBB\xBF\xEF\xBB\xBF"), 2282 { 0xFEFF,0xFEFF }, 2283 2, 2284 false, 2285 true, 2286 true, 2287 false, 2288 RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR }, 2289 { RTL_TEXTENCODING_UTF8, 2290 RTL_CONSTASCII_STRINGPARAM("\xEF\xBB\xBF"), 2291 { 0 }, 2292 0, 2293 false, 2294 true, 2295 true, 2296 true, 2297 RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR }, 2298 { RTL_TEXTENCODING_UTF8, 2299 RTL_CONSTASCII_STRINGPARAM("\xEF\xBB\xBF\xEF\xBB\xBF"), 2300 { 0xFEFF }, 2301 1, 2302 false, 2303 true, 2304 true, 2305 true, 2306 RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR }, 2307 { RTL_TEXTENCODING_UTF8, 2308 RTL_CONSTASCII_STRINGPARAM("\x01\x02\x7E\x7F"), 2309 { 0x0001,0x0002,0x007E,0x007F }, 2310 4, 2311 false, 2312 true, 2313 true, 2314 false, 2315 RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR }, 2316 { RTL_TEXTENCODING_UTF8, 2317 RTL_CONSTASCII_STRINGPARAM( 2318 "\xC0\x80\xE0\x80\x81\xF0\x80\x80\x82\xF8\x80\x80\x80\x83" 2319 "\xFC\x80\x80\x80\x80\x84"), 2320 { 0x0000,0x0001,0x0002,0x0003,0x0004 }, 2321 5, 2322 false, 2323 true, 2324 false, 2325 false, 2326 RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR }, 2327 { RTL_TEXTENCODING_UTF8, 2328 RTL_CONSTASCII_STRINGPARAM("\xED\xA1\x89\xED\xB4\x93"), 2329 { 0xD849,0xDD13 }, 2330 2, 2331 false, 2332 true, 2333 false, 2334 false, 2335 RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR }, 2336 { RTL_TEXTENCODING_UTF8, 2337 RTL_CONSTASCII_STRINGPARAM("\xED\xA1\x89\x41"), 2338 { 0xD849,0x0041 }, 2339 2, 2340 false, 2341 true, 2342 false, 2343 false, 2344 RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR }, 2345 2346 // Test Java UTF-8: 2347 2348 { RTL_TEXTENCODING_JAVA_UTF8, 2349 RTL_CONSTASCII_STRINGPARAM( 2350 "\xEF\xBB\xBF\xC0\x80\x01\x20\x41\x7F\xED\xA0\x80" 2351 "\xED\xB0\x80"), 2352 { 0xFEFF,0x0000,0x0001,0x0020,0x0041,0x007F,0xD800,0xDC00 }, 2353 8, 2354 false, 2355 true, 2356 true, 2357 true, 2358 RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR }, 2359 2360 // Bug #112949#: 2361 2362 { RTL_TEXTENCODING_SHIFT_JIS, 2363 RTL_CONSTASCII_STRINGPARAM("\x81\x63"), 2364 { 0x2026 }, 2365 1, 2366 false, 2367 true, 2368 true, 2369 false, 2370 RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR }, 2371 { RTL_TEXTENCODING_SHIFT_JIS, 2372 RTL_CONSTASCII_STRINGPARAM("\xA0\xFD\xFE\xFF"), 2373 { 0x00A0, 0x00A9, 0x2122, 0x2026 }, 2374 4, 2375 false, 2376 true, 2377 false, 2378 false, 2379 RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR }, 2380 { RTL_TEXTENCODING_SHIFT_JIS, 2381 RTL_CONSTASCII_STRINGPARAM(""), 2382 { 0x00A0, 0x00A9, 0x2122 }, 2383 3, 2384 false, 2385 false, 2386 true, 2387 false, 2388 RTL_UNICODETOTEXT_FLAGS_UNDEFINED_IGNORE }, 2389 { RTL_TEXTENCODING_MS_932, 2390 RTL_CONSTASCII_STRINGPARAM("\x81\x63"), 2391 { 0x2026 }, 2392 1, 2393 false, 2394 true, 2395 true, 2396 false, 2397 RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR }, 2398 { RTL_TEXTENCODING_MS_932, 2399 RTL_CONSTASCII_STRINGPARAM("\xA0\xFD\xFE\xFF"), 2400 { 0x00A0, 0x00A9, 0x2122, 0x2026 }, 2401 4, 2402 false, 2403 true, 2404 false, 2405 false, 2406 RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR }, 2407 { RTL_TEXTENCODING_MS_932, 2408 RTL_CONSTASCII_STRINGPARAM(""), 2409 { 0x00A0, 0x00A9, 0x2122 }, 2410 3, 2411 false, 2412 false, 2413 true, 2414 false, 2415 RTL_UNICODETOTEXT_FLAGS_UNDEFINED_IGNORE }, 2416 { RTL_TEXTENCODING_APPLE_JAPANESE, 2417 RTL_CONSTASCII_STRINGPARAM("\xA0\xFD\xFE\x81\x63"), 2418 { 0x00A0, 0x00A9, 0x2122, 0x2026 }, 2419 4, 2420 false, 2421 true, 2422 true, 2423 false, 2424 RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR }, 2425 { RTL_TEXTENCODING_APPLE_JAPANESE, 2426 RTL_CONSTASCII_STRINGPARAM("\xFF"), 2427 { 0x2026 }, 2428 1, 2429 false, 2430 true, 2431 false, 2432 false, 2433 RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR }, 2434 2435 { RTL_TEXTENCODING_ADOBE_STANDARD, 2436 RTL_CONSTASCII_STRINGPARAM("\x20\x2D\xA4\xB4\xC5"), 2437 { 0x0020, 0x002D, 0x2215, 0x00B7, 0x00AF }, 2438 5, 2439 false, 2440 true, 2441 true, 2442 false, 2443 RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR }, 2444 { RTL_TEXTENCODING_ADOBE_STANDARD, 2445 RTL_CONSTASCII_STRINGPARAM("\x20\x2D\xA4\xB4\xC5"), 2446 { 0x00A0, 0x00AD, 0x2044, 0x2219, 0x02C9 }, 2447 5, 2448 false, 2449 false, 2450 true, 2451 false, 2452 RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR }, 2453 2454 { RTL_TEXTENCODING_ADOBE_SYMBOL, 2455 RTL_CONSTASCII_STRINGPARAM("\x20\x44\x57\x6D\xA4"), 2456 { 0x0020, 0x0394, 0x03A9, 0x03BC, 0x2215 }, 2457 5, 2458 false, 2459 true, 2460 true, 2461 false, 2462 RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR }, 2463 { RTL_TEXTENCODING_ADOBE_SYMBOL, 2464 RTL_CONSTASCII_STRINGPARAM("\x20\x44\x57\x6D\xA4"), 2465 { 0x00A0, 0x2206, 0x2126, 0x00B5, 0x2044 }, 2466 5, 2467 false, 2468 false, 2469 true, 2470 false, 2471 RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR }, 2472 2473 // Bug #i62310#: 2474 { RTL_TEXTENCODING_SHIFT_JIS, 2475 RTL_CONSTASCII_STRINGPARAM( 2476 "\xF0\x40\xF0\x7E\xF0\x80\xF0\xFC\xF1\x40\xF9\xFC"), 2477 { 0xE000, 0xE03E, 0xE03F, 0xE0BB, 0xE0BC, 0xE757 }, 2478 6, 2479 true, 2480 true, 2481 true, 2482 false, 2483 RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR }, 2484 2485 // Bug #i73103#: 2486 { RTL_TEXTENCODING_MS_1258, 2487 RTL_CONSTASCII_STRINGPARAM( 2488 "\xC0\x41\xDE\xE3\xD2\xD4\xEC\xFD\xF2"), 2489 { 0x00C0, 0x0041, 0x0303, 0x0103, 0x0309, 0x00D4, 0x0301, 0x01B0, 2490 0x0323 }, 2491 9, 2492 true, 2493 true, 2494 true, 2495 false, 2496 RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR }, 2497 { RTL_TEXTENCODING_MS_1258, 2498 RTL_CONSTASCII_STRINGPARAM( 2499 "\xC0\x41\xDE\xE3\xD2\xD4\xEC\xFD\xF2"), 2500 { 0x00C0, 0x00C3, 0x1EB3, 0x1ED0, 0x1EF1 }, 2501 5, 2502 false, 2503 false, 2504 true, 2505 false, 2506 RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR } 2507 }; 2508 for (std::size_t i = 0; i < sizeof data / sizeof data[0]; ++i) { 2509 doComplexCharSetTest(data[i]); 2510 } 2511 } 2512 2513 void Test::testComplexCut() { 2514 static ComplexCharSetTest const data[] 2515 = { { RTL_TEXTENCODING_EUC_JP, 2516 RTL_CONSTASCII_STRINGPARAM("\xA1"), 2517 { 0 }, 2518 0, 2519 true, 2520 true, 2521 false, 2522 false, 2523 RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR }, 2524 { RTL_TEXTENCODING_EUC_JP, 2525 RTL_CONSTASCII_STRINGPARAM("\x8E"), 2526 { 0 }, 2527 0, 2528 true, 2529 true, 2530 false, 2531 false, 2532 RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR }, 2533 { RTL_TEXTENCODING_EUC_JP, 2534 RTL_CONSTASCII_STRINGPARAM("\x8F"), 2535 { 0 }, 2536 0, 2537 true, 2538 true, 2539 false, 2540 false, 2541 RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR }, 2542 { RTL_TEXTENCODING_EUC_JP, 2543 RTL_CONSTASCII_STRINGPARAM("\x8F\xA1"), 2544 { 0 }, 2545 0, 2546 true, 2547 true, 2548 false, 2549 false, 2550 RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR }, 2551 { RTL_TEXTENCODING_EUC_CN, 2552 RTL_CONSTASCII_STRINGPARAM("\xA1"), 2553 { 0 }, 2554 0, 2555 true, 2556 true, 2557 false, 2558 false, 2559 RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR } /* , 2560 { RTL_TEXTENCODING_EUC_TW, 2561 RTL_CONSTASCII_STRINGPARAM("\xA1"), 2562 { 0 }, 2563 0, 2564 true, 2565 true, 2566 false, 2567 false, 2568 RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR }, 2569 { RTL_TEXTENCODING_EUC_TW, 2570 RTL_CONSTASCII_STRINGPARAM("\x8E"), 2571 { 0 }, 2572 0, 2573 true, 2574 true, 2575 false, 2576 false, 2577 RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR }, 2578 { RTL_TEXTENCODING_EUC_TW, 2579 RTL_CONSTASCII_STRINGPARAM("\x8E\xA1"), 2580 { 0 }, 2581 0, 2582 true, 2583 true, 2584 false, 2585 false, 2586 RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR }, 2587 { RTL_TEXTENCODING_EUC_TW, 2588 RTL_CONSTASCII_STRINGPARAM("\x8E\xA1\xA1"), 2589 { 0 }, 2590 0, 2591 true, 2592 true, 2593 false, 2594 false, 2595 RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR } */ }; 2596 for (std::size_t i = 0; i < sizeof data / sizeof data[0]; ++i) { 2597 doComplexCharSetCutTest(data[i]); 2598 } 2599 } 2600 2601 void Test::testSRCBUFFERTOSMALL() { 2602 rtl_TextToUnicodeConverter cv = rtl_createTextToUnicodeConverter( 2603 RTL_TEXTENCODING_EUC_JP); 2604 OSL_ASSERT(cv != NULL); 2605 rtl_TextToUnicodeContext cx = rtl_createTextToUnicodeContext(cv); 2606 OSL_ASSERT(cx != NULL); 2607 char src = '\xA1'; 2608 sal_Unicode dst[10]; 2609 sal_uInt32 info; 2610 sal_Size cvt; 2611 CPPUNIT_ASSERT_EQUAL( 2612 sal_Size(0), 2613 rtl_convertTextToUnicode( 2614 cv, cx, &src, 1, dst, sizeof dst / sizeof (sal_Unicode), 2615 (RTL_TEXTTOUNICODE_FLAGS_UNDEFINED_ERROR | 2616 RTL_TEXTTOUNICODE_FLAGS_MBUNDEFINED_ERROR | 2617 RTL_TEXTTOUNICODE_FLAGS_INVALID_ERROR), 2618 &info, &cvt)); 2619 CPPUNIT_ASSERT_EQUAL(RTL_TEXTTOUNICODE_INFO_SRCBUFFERTOSMALL, info); 2620 CPPUNIT_ASSERT(cvt <= 1); 2621 rtl_destroyTextToUnicodeContext(cv, cx); 2622 rtl_destroyTextToUnicodeConverter(cv); 2623 } 2624 2625 void Test::testMime() { 2626 struct Data { 2627 char const * mime; 2628 rtl_TextEncoding encoding; 2629 bool reverse; 2630 }; 2631 static Data const data[] = { 2632 { "GBK", RTL_TEXTENCODING_GBK, false }, 2633 { "CP936", RTL_TEXTENCODING_GBK, false }, 2634 { "MS936", RTL_TEXTENCODING_GBK, false }, 2635 { "windows-936", RTL_TEXTENCODING_GBK, false }, 2636 2637 { "GB18030", RTL_TEXTENCODING_GB_18030, false }, 2638 2639 { "TIS-620", RTL_TEXTENCODING_TIS_620, true }, 2640 { "ISO-8859-11", RTL_TEXTENCODING_TIS_620, false }, // not registered 2641 2642 { "CP874", RTL_TEXTENCODING_MS_874, false }, // not registered 2643 { "MS874", RTL_TEXTENCODING_MS_874, false }, // not registered 2644 { "windows-874", RTL_TEXTENCODING_MS_874, true }, // not registered 2645 2646 { "ISO_8859-8:1988", RTL_TEXTENCODING_ISO_8859_8, false }, 2647 { "iso-ir-138", RTL_TEXTENCODING_ISO_8859_8, false }, 2648 { "ISO_8859-8", RTL_TEXTENCODING_ISO_8859_8, false }, 2649 { "ISO-8859-8", RTL_TEXTENCODING_ISO_8859_8, true }, 2650 { "hebrew", RTL_TEXTENCODING_ISO_8859_8, false }, 2651 { "csISOLatinHebrew", RTL_TEXTENCODING_ISO_8859_8, false }, 2652 2653 { "windows-1255", RTL_TEXTENCODING_MS_1255, true }, 2654 2655 { "IBM862", RTL_TEXTENCODING_IBM_862, true }, 2656 { "cp862", RTL_TEXTENCODING_IBM_862, false }, 2657 { "862", RTL_TEXTENCODING_IBM_862, false }, 2658 { "csPC862LatinHebrew", RTL_TEXTENCODING_IBM_862, false }, 2659 2660 { "ISO_8859-6:1987", RTL_TEXTENCODING_ISO_8859_6, false }, 2661 { "iso-ir-127", RTL_TEXTENCODING_ISO_8859_6, false }, 2662 { "ISO_8859-6", RTL_TEXTENCODING_ISO_8859_6, false }, 2663 { "ISO-8859-6", RTL_TEXTENCODING_ISO_8859_6, true }, 2664 { "ECMA-114", RTL_TEXTENCODING_ISO_8859_6, false }, 2665 { "ASMO-708", RTL_TEXTENCODING_ISO_8859_6, false }, 2666 { "arabic", RTL_TEXTENCODING_ISO_8859_6, false }, 2667 { "csISOLatinArabic", RTL_TEXTENCODING_ISO_8859_6, false }, 2668 2669 { "windows-1256", RTL_TEXTENCODING_MS_1256, true }, 2670 2671 { "IBM864", RTL_TEXTENCODING_IBM_864, true }, 2672 { "cp864", RTL_TEXTENCODING_IBM_864, false }, 2673 { "csIBM864", RTL_TEXTENCODING_IBM_864, false }, 2674 2675 { "KOI8-R", RTL_TEXTENCODING_KOI8_R, false }, 2676 { "csKOI8R", RTL_TEXTENCODING_KOI8_R, false }, 2677 { "koi8-r", RTL_TEXTENCODING_KOI8_R, true }, 2678 2679 { "KOI8-U", RTL_TEXTENCODING_KOI8_U, true }, 2680 2681 { "IBM860", RTL_TEXTENCODING_IBM_860, true }, 2682 { "cp860", RTL_TEXTENCODING_IBM_860, false }, 2683 { "860", RTL_TEXTENCODING_IBM_860, false }, 2684 { "csIBM860", RTL_TEXTENCODING_IBM_860, false }, 2685 2686 { "IBM861", RTL_TEXTENCODING_IBM_861, true }, 2687 { "cp861", RTL_TEXTENCODING_IBM_861, false }, 2688 { "861", RTL_TEXTENCODING_IBM_861, false }, 2689 { "cp-is", RTL_TEXTENCODING_IBM_861, false }, 2690 { "csIBM861", RTL_TEXTENCODING_IBM_861, false }, 2691 2692 { "IBM863", RTL_TEXTENCODING_IBM_863, true }, 2693 { "cp863", RTL_TEXTENCODING_IBM_863, false }, 2694 { "863", RTL_TEXTENCODING_IBM_863, false }, 2695 { "csIBM863", RTL_TEXTENCODING_IBM_863, false }, 2696 2697 { "IBM865", RTL_TEXTENCODING_IBM_865, true }, 2698 { "cp865", RTL_TEXTENCODING_IBM_865, false }, 2699 { "865", RTL_TEXTENCODING_IBM_865, false }, 2700 { "csIBM865", RTL_TEXTENCODING_IBM_865, false }, 2701 2702 { "Latin-9", RTL_TEXTENCODING_ISO_8859_15, false }, 2703 2704 { "KS_C_5601-1987", RTL_TEXTENCODING_MS_949, false }, 2705 { "iso-ir-149", RTL_TEXTENCODING_MS_949, false }, 2706 { "KS_C_5601-1989", RTL_TEXTENCODING_MS_949, false }, 2707 { "KSC_5601", RTL_TEXTENCODING_MS_949, false }, 2708 { "korean", RTL_TEXTENCODING_MS_949, false }, 2709 { "csKSC56011987", RTL_TEXTENCODING_MS_949, false }, 2710 { 0, RTL_TEXTENCODING_MS_949, true }, 2711 2712 { "Adobe-Standard-Encoding", RTL_TEXTENCODING_ADOBE_STANDARD, false }, 2713 { "csAdobeStandardEncoding", RTL_TEXTENCODING_ADOBE_STANDARD, false }, 2714 { "Adobe-Symbol-Encoding", RTL_TEXTENCODING_ADOBE_SYMBOL, false }, 2715 { "csHPPSMath", RTL_TEXTENCODING_ADOBE_SYMBOL, false }, 2716 2717 { "PTCP154", RTL_TEXTENCODING_PT154, true }, 2718 { "csPTCP154", RTL_TEXTENCODING_PT154, false }, 2719 { "PT154", RTL_TEXTENCODING_PT154, false }, 2720 { "CP154", RTL_TEXTENCODING_PT154, false }, 2721 { "Cyrillic-Asian", RTL_TEXTENCODING_PT154, false } 2722 }; 2723 for (std::size_t i = 0; i < sizeof data / sizeof data[0]; ++i) { 2724 if (data[i].mime == 0) { 2725 OSL_ASSERT(data[i].reverse); 2726 CPPUNIT_ASSERT_EQUAL( 2727 static_cast< char const * >(0), 2728 rtl_getMimeCharsetFromTextEncoding(data[i].encoding)); 2729 } else { 2730 CPPUNIT_ASSERT_EQUAL( 2731 data[i].encoding, 2732 rtl_getTextEncodingFromMimeCharset(data[i].mime)); 2733 if (data[i].reverse) { 2734 CPPUNIT_ASSERT_EQUAL( 2735 rtl::OString(data[i].mime), 2736 rtl::OString( 2737 rtl_getMimeCharsetFromTextEncoding(data[i].encoding))); 2738 } 2739 } 2740 } 2741 } 2742 2743 void Test::testWindows() { 2744 struct Data { 2745 sal_uInt32 codePage; 2746 rtl_TextEncoding encoding; 2747 bool reverse; 2748 }; 2749 static Data const data[] = { 2750 { 437, RTL_TEXTENCODING_IBM_437, true }, 2751 { 708, RTL_TEXTENCODING_ISO_8859_6, false }, 2752 { 737, RTL_TEXTENCODING_IBM_737, true }, 2753 { 775, RTL_TEXTENCODING_IBM_775, true }, 2754 { 850, RTL_TEXTENCODING_IBM_850, true }, 2755 { 852, RTL_TEXTENCODING_IBM_852, true }, 2756 { 855, RTL_TEXTENCODING_IBM_855, true }, 2757 { 857, RTL_TEXTENCODING_IBM_857, true }, 2758 { 860, RTL_TEXTENCODING_IBM_860, true }, 2759 { 861, RTL_TEXTENCODING_IBM_861, true }, 2760 { 862, RTL_TEXTENCODING_IBM_862, true }, 2761 { 863, RTL_TEXTENCODING_IBM_863, true }, 2762 { 864, RTL_TEXTENCODING_IBM_864, true }, 2763 { 865, RTL_TEXTENCODING_IBM_865, true }, 2764 { 866, RTL_TEXTENCODING_IBM_866, true }, 2765 { 869, RTL_TEXTENCODING_IBM_869, true }, 2766 { 874, RTL_TEXTENCODING_MS_874, true }, 2767 { 932, RTL_TEXTENCODING_MS_932, true }, 2768 { 936, RTL_TEXTENCODING_MS_936, true }, 2769 { 949, RTL_TEXTENCODING_MS_949, true }, 2770 { 950, RTL_TEXTENCODING_MS_950, true }, 2771 { 1250, RTL_TEXTENCODING_MS_1250, true }, 2772 { 1251, RTL_TEXTENCODING_MS_1251, true }, 2773 { 1252, RTL_TEXTENCODING_MS_1252, true }, 2774 { 1253, RTL_TEXTENCODING_MS_1253, true }, 2775 { 1254, RTL_TEXTENCODING_MS_1254, true }, 2776 { 1255, RTL_TEXTENCODING_MS_1255, true }, 2777 { 1256, RTL_TEXTENCODING_MS_1256, true }, 2778 { 1257, RTL_TEXTENCODING_MS_1257, true }, 2779 { 1258, RTL_TEXTENCODING_MS_1258, true }, 2780 { 1361, RTL_TEXTENCODING_MS_1361, true }, 2781 { 10000, RTL_TEXTENCODING_APPLE_ROMAN, true }, 2782 { 10001, RTL_TEXTENCODING_APPLE_JAPANESE, true }, 2783 { 10002, RTL_TEXTENCODING_APPLE_CHINTRAD, true }, 2784 { 10003, RTL_TEXTENCODING_APPLE_KOREAN, true }, 2785 { 10004, RTL_TEXTENCODING_APPLE_ARABIC, true }, 2786 { 10005, RTL_TEXTENCODING_APPLE_HEBREW, true }, 2787 { 10006, RTL_TEXTENCODING_APPLE_GREEK, true }, 2788 { 10007, RTL_TEXTENCODING_APPLE_CYRILLIC, true }, 2789 { 10008, RTL_TEXTENCODING_APPLE_CHINSIMP, true }, 2790 { 10010, RTL_TEXTENCODING_APPLE_ROMANIAN, true }, 2791 { 10017, RTL_TEXTENCODING_APPLE_UKRAINIAN, true }, 2792 { 10029, RTL_TEXTENCODING_APPLE_CENTEURO, true }, 2793 { 10079, RTL_TEXTENCODING_APPLE_ICELAND, true }, 2794 { 10081, RTL_TEXTENCODING_APPLE_TURKISH, true }, 2795 { 10082, RTL_TEXTENCODING_APPLE_CROATIAN, true }, 2796 { 20127, RTL_TEXTENCODING_ASCII_US, true }, 2797 { 20866, RTL_TEXTENCODING_KOI8_R, true }, 2798 { 21866, RTL_TEXTENCODING_KOI8_U, true }, 2799 { 28591, RTL_TEXTENCODING_ISO_8859_1, true }, 2800 { 28592, RTL_TEXTENCODING_ISO_8859_2, true }, 2801 { 28593, RTL_TEXTENCODING_ISO_8859_3, true }, 2802 { 28594, RTL_TEXTENCODING_ISO_8859_4, true }, 2803 { 28595, RTL_TEXTENCODING_ISO_8859_5, true }, 2804 { 28596, RTL_TEXTENCODING_ISO_8859_6, true }, 2805 { 28597, RTL_TEXTENCODING_ISO_8859_7, true }, 2806 { 28598, RTL_TEXTENCODING_ISO_8859_8, true }, 2807 { 28599, RTL_TEXTENCODING_ISO_8859_9, true }, 2808 { 28605, RTL_TEXTENCODING_ISO_8859_15, true }, 2809 { 50220, RTL_TEXTENCODING_ISO_2022_JP, true }, 2810 { 50225, RTL_TEXTENCODING_ISO_2022_KR, true }, 2811 { 51932, RTL_TEXTENCODING_EUC_JP, true }, 2812 { 51936, RTL_TEXTENCODING_EUC_CN, true }, 2813 { 51949, RTL_TEXTENCODING_EUC_KR, true }, 2814 { 65000, RTL_TEXTENCODING_UTF7, true }, 2815 { 65001, RTL_TEXTENCODING_UTF8, true }, 2816 { 1200, RTL_TEXTENCODING_DONTKNOW, false }, // UTF_16LE 2817 { 1201, RTL_TEXTENCODING_DONTKNOW, false }, // UTF_16LE 2818 { 0, RTL_TEXTENCODING_DONTKNOW, true }, 2819 { 0, RTL_TEXTENCODING_UCS4, true }, 2820 { 0, RTL_TEXTENCODING_UCS2, true }, 2821 { 0, RTL_TEXTENCODING_ISCII_DEVANAGARI, true } 2822 }; 2823 for (std::size_t i = 0; i < sizeof data / sizeof data[0]; ++i) { 2824 OSL_ASSERT(data[i].codePage != 0 || data[i].reverse); 2825 if (data[i].codePage != 0) { 2826 CPPUNIT_ASSERT_EQUAL( 2827 data[i].encoding, 2828 rtl_getTextEncodingFromWindowsCodePage(data[i].codePage)); 2829 } 2830 if (data[i].reverse) { 2831 CPPUNIT_ASSERT_EQUAL( 2832 data[i].codePage, 2833 rtl_getWindowsCodePageFromTextEncoding(data[i].encoding)); 2834 } 2835 } 2836 } 2837 2838 void Test::testInfo() { 2839 struct Data { 2840 rtl_TextEncoding encoding; 2841 sal_uInt32 flag; 2842 bool value; 2843 }; 2844 static Data const data[] = { 2845 { RTL_TEXTENCODING_APPLE_CHINTRAD, RTL_TEXTENCODING_INFO_ASCII, false }, 2846 { RTL_TEXTENCODING_APPLE_JAPANESE, RTL_TEXTENCODING_INFO_ASCII, false }, 2847 { RTL_TEXTENCODING_APPLE_KOREAN, RTL_TEXTENCODING_INFO_ASCII, false }, 2848 { RTL_TEXTENCODING_BIG5, RTL_TEXTENCODING_INFO_ASCII, false }, 2849 { RTL_TEXTENCODING_BIG5_HKSCS, RTL_TEXTENCODING_INFO_ASCII, false }, 2850 { RTL_TEXTENCODING_EUC_CN, RTL_TEXTENCODING_INFO_ASCII, true }, 2851 { RTL_TEXTENCODING_EUC_JP, RTL_TEXTENCODING_INFO_ASCII, true }, 2852 { RTL_TEXTENCODING_EUC_KR, RTL_TEXTENCODING_INFO_ASCII, true }, 2853 { RTL_TEXTENCODING_EUC_TW, RTL_TEXTENCODING_INFO_ASCII, true }, 2854 { RTL_TEXTENCODING_GBK, RTL_TEXTENCODING_INFO_ASCII, false }, 2855 { RTL_TEXTENCODING_GB_18030, RTL_TEXTENCODING_INFO_ASCII, false }, 2856 { RTL_TEXTENCODING_GB_18030, RTL_TEXTENCODING_INFO_UNICODE, true }, 2857 { RTL_TEXTENCODING_ISO_2022_CN, RTL_TEXTENCODING_INFO_CONTEXT, true }, 2858 { RTL_TEXTENCODING_ISO_2022_CN, RTL_TEXTENCODING_INFO_ASCII, false }, 2859 { RTL_TEXTENCODING_ISO_2022_JP, RTL_TEXTENCODING_INFO_CONTEXT, true }, 2860 { RTL_TEXTENCODING_ISO_2022_JP, RTL_TEXTENCODING_INFO_ASCII, false }, 2861 { RTL_TEXTENCODING_ISO_2022_KR, RTL_TEXTENCODING_INFO_CONTEXT, true }, 2862 { RTL_TEXTENCODING_ISO_2022_KR, RTL_TEXTENCODING_INFO_ASCII, false }, 2863 { RTL_TEXTENCODING_MS_1361, RTL_TEXTENCODING_INFO_ASCII, false }, 2864 { RTL_TEXTENCODING_MS_874, RTL_TEXTENCODING_INFO_ASCII, true }, 2865 { RTL_TEXTENCODING_MS_932, RTL_TEXTENCODING_INFO_ASCII, false }, 2866 { RTL_TEXTENCODING_MS_936, RTL_TEXTENCODING_INFO_ASCII, false }, 2867 { RTL_TEXTENCODING_MS_949, RTL_TEXTENCODING_INFO_ASCII, false }, 2868 { RTL_TEXTENCODING_MS_950, RTL_TEXTENCODING_INFO_ASCII, false }, 2869 { RTL_TEXTENCODING_SHIFT_JIS, RTL_TEXTENCODING_INFO_ASCII, false }, 2870 { RTL_TEXTENCODING_KOI8_R, RTL_TEXTENCODING_INFO_ASCII, true }, 2871 { RTL_TEXTENCODING_KOI8_R, RTL_TEXTENCODING_INFO_MIME, true }, 2872 { RTL_TEXTENCODING_KOI8_U, RTL_TEXTENCODING_INFO_ASCII, true }, 2873 { RTL_TEXTENCODING_KOI8_U, RTL_TEXTENCODING_INFO_MIME, true }, 2874 { RTL_TEXTENCODING_IBM_860, RTL_TEXTENCODING_INFO_MIME, true }, 2875 { RTL_TEXTENCODING_IBM_861, RTL_TEXTENCODING_INFO_MIME, true }, 2876 { RTL_TEXTENCODING_IBM_863, RTL_TEXTENCODING_INFO_MIME, true }, 2877 { RTL_TEXTENCODING_IBM_865, RTL_TEXTENCODING_INFO_MIME, true }, 2878 { RTL_TEXTENCODING_ISCII_DEVANAGARI, RTL_TEXTENCODING_INFO_ASCII, true }, 2879 { RTL_TEXTENCODING_ISCII_DEVANAGARI, RTL_TEXTENCODING_INFO_MIME, false }, 2880 { RTL_TEXTENCODING_ADOBE_STANDARD, RTL_TEXTENCODING_INFO_ASCII, false }, 2881 { RTL_TEXTENCODING_ADOBE_STANDARD, RTL_TEXTENCODING_INFO_MIME, true }, 2882 { RTL_TEXTENCODING_ADOBE_STANDARD, RTL_TEXTENCODING_INFO_SYMBOL, false }, 2883 { RTL_TEXTENCODING_ADOBE_SYMBOL, RTL_TEXTENCODING_INFO_ASCII, false }, 2884 { RTL_TEXTENCODING_ADOBE_SYMBOL, RTL_TEXTENCODING_INFO_MIME, true }, 2885 { RTL_TEXTENCODING_ADOBE_SYMBOL, RTL_TEXTENCODING_INFO_SYMBOL, true }, 2886 { RTL_TEXTENCODING_PT154, RTL_TEXTENCODING_INFO_ASCII, true }, 2887 { RTL_TEXTENCODING_PT154, RTL_TEXTENCODING_INFO_MIME, true } 2888 }; 2889 for (std::size_t i = 0; i < sizeof data / sizeof data[0]; ++i) { 2890 rtl_TextEncodingInfo info; 2891 info.StructSize = sizeof info; 2892 CPPUNIT_ASSERT(rtl_getTextEncodingInfo(data[i].encoding, &info)); 2893 CPPUNIT_ASSERT_EQUAL(data[i].value, ((info.Flags & data[i].flag) != 0)); 2894 } 2895 } 2896 2897 CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(Test, "rtl_textcvt"); 2898 2899 } 2900 2901 NOADDITIONAL; 2902