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