/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
/*
* This file is part of the LibreOffice project.
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*
* This file incorporates work covered by the following license notice:
*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed
* with this work for additional information regarding copyright
* ownership. The ASF licenses this file to you under the Apache
* License, Version 2.0 (the "License"); you may not use this file
* except in compliance with the License. You may obtain a copy of
* the License at http://www.apache.org/licenses/LICENSE-2.0 .
*/
#include <config_locales.h>
#include <sal/config.h>
#include <cppunit/TestFixture.h>
#include <cppunit/extensions/HelperMacros.h>
#include <o3tl/cppunittraitshelper.hxx>
#include <rtl/string.hxx>
#include <rtl/ustring.hxx>
#include <rtl/tencinfo.h>
#include <rtl/textcvt.h>
#include <rtl/textenc.h>
#include <sal/types.h>
#include <sal/macros.h>
#include <osl/diagnose.h>
namespace {
struct SingleByteCharSet {
rtl_TextEncoding m_nEncoding;
sal_Unicode m_aMap[
256 ];
};
void testSingleByteCharSet(SingleByteCharSet
const & rSet) {
char aText[
256 ];
sal_Unicode aUnicode[
256 ];
sal_Size nNumber =
0 ;
for (
int i =
0 ; i <
256 ; ++i) {
if (rSet.m_aMap[i] !=
0 xFFFF) {
aText[nNumber++] =
static_cast <
char >(i);
}
}
{
rtl_TextToUnicodeConverter aConverter
= rtl_createTextToUnicodeConverter(rSet.m_nEncoding);
CPPUNIT_ASSERT_MESSAGE(OUStringToOString(Concat2View(
"rtl_createTextToUnicodeConverter(" + OUString::number(rSet.m_nEncoding) +
") failed" ),
RTL_TEXTENCODING_UTF8).getStr(),
aConverter != nullptr);
rtl_TextToUnicodeContext aContext
= rtl_createTextToUnicodeContext(aConverter);
CPPUNIT_ASSERT_MESSAGE(
"rtl_createTextToUnicodeContext failed" , aContext != nullptr)
;
sal_Size nSize;
sal_uInt32 nInfo;
sal_Size nConverted;
nSize = rtl_convertTextToUnicode(
aConverter, aContext, aText, nNumber, aUnicode, nNumber,
(RTL_TEXTTOUNICODE_FLAGS_UNDEFINED_ERROR
| RTL_TEXTTOUNICODE_FLAGS_MBUNDEFINED_ERROR
| RTL_TEXTTOUNICODE_FLAGS_INVALID_ERROR),
&nInfo, &nConverted);
CPPUNIT_ASSERT_EQUAL(nNumber, nSize);
CPPUNIT_ASSERT_EQUAL(sal_uInt32(0 ), nInfo);
CPPUNIT_ASSERT_EQUAL(nNumber, nConverted);
rtl_destroyTextToUnicodeContext(aConverter, aContext);
rtl_destroyTextToUnicodeConverter(aConverter);
}
{
int j = 0 ;
for (int i = 0 ; i < 256 ; ++i) {
if (rSet.m_aMap[i] != 0 xFFFF && aUnicode[j] != rSet.m_aMap[i]) {
CPPUNIT_ASSERT_EQUAL_MESSAGE(OUStringToOString(Concat2View("rSet.m_aMap[" + OUString::number(i) + "] == " +
OUString::number(rSet.m_aMap[i], 16 )),
RTL_TEXTENCODING_UTF8).getStr(),
u'\xFFFF' , rSet.m_aMap[i]);
CPPUNIT_ASSERT_EQUAL_MESSAGE(OUStringToOString(Concat2View("aUnicode[" + OUString::number(j) + "] == " +
OUString::number(aUnicode[j], 16 ) +
", rSet.m_aMap[" + OUString::number(i) + "] == " +
OUString::number(rSet.m_aMap[i], 16 )),
RTL_TEXTENCODING_UTF8).getStr(),
rSet.m_aMap[i], aUnicode[j]);
}
if (rSet.m_aMap[i] != 0 xFFFF)
j++;
}
}
if (rSet.m_nEncoding == RTL_TEXTENCODING_ASCII_US) {
nNumber = 128 ;
}
{
rtl_UnicodeToTextConverter aConverter
= rtl_createUnicodeToTextConverter(rSet.m_nEncoding);
CPPUNIT_ASSERT_MESSAGE(OUStringToOString(Concat2View("rtl_createTextToUnicodeConverter(" + OUString::createFromAscii(rtl_getMimeCharsetFromTextEncoding(rSet.m_nEncoding)) + ") failed" ),
RTL_TEXTENCODING_UTF8).getStr(),
aConverter != nullptr);
rtl_UnicodeToTextContext aContext
= rtl_createUnicodeToTextContext(aConverter);
CPPUNIT_ASSERT_MESSAGE("rtl_createTextToUnicodeContext failed" , aContext != nullptr);
sal_Size nSize;
sal_uInt32 nInfo;
sal_Size nConverted;
nSize = rtl_convertUnicodeToText(
aConverter, aContext, aUnicode, nNumber, aText, nNumber,
(RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR
| RTL_UNICODETOTEXT_FLAGS_INVALID_ERROR),
&nInfo, &nConverted);
CPPUNIT_ASSERT_EQUAL(nNumber, nSize);
CPPUNIT_ASSERT_EQUAL(sal_uInt32(0 ), nInfo);
CPPUNIT_ASSERT_EQUAL(nNumber, nConverted);
rtl_destroyUnicodeToTextContext(aConverter, aContext);
rtl_destroyUnicodeToTextConverter(aConverter);
}
{
int j = 0 ;
for (int i = 0 ; i < 256 ; ++i) {
if (rSet.m_aMap[i] != 0 xFFFF
&& aText[j] != static_cast < char >(i))
{
CPPUNIT_ASSERT_EQUAL_MESSAGE(OUStringToOString(Concat2View("rSet.m_aMap[" + OUString::number(i) + "] == " +
OUString::number(rSet.m_aMap[i], 16 )),
RTL_TEXTENCODING_UTF8).getStr(),
u'\xFFFF' , rSet.m_aMap[i]);
CPPUNIT_ASSERT_EQUAL_MESSAGE(OUStringToOString(Concat2View("aText[" + OUString::number(j) + "] == " +
OUString::number(i, 16 )),
RTL_TEXTENCODING_UTF8).getStr(),
static_cast < char >(i), aText[j]);
}
if (rSet.m_aMap[i] != 0 xFFFF)
j++;
}
}
for (int i = 0 ; i < 256 ; ++i) {
if (rSet.m_aMap[i] == 0 xFFFF) {
aText[0 ] = static_cast < char >(i);
rtl_TextToUnicodeConverter aConverter
= rtl_createTextToUnicodeConverter(rSet.m_nEncoding);
CPPUNIT_ASSERT_MESSAGE(OUStringToOString(Concat2View("rtl_createTextToUnicodeConverter(" + OUString::createFromAscii(rtl_getMimeCharsetFromTextEncoding(rSet.m_nEncoding)) + ") failed" ),
RTL_TEXTENCODING_UTF8).getStr(),
aConverter != nullptr);
rtl_TextToUnicodeContext aContext
= rtl_createTextToUnicodeContext(aConverter);
CPPUNIT_ASSERT_MESSAGE("rtl_createTextToUnicodeContext failed" , aContext != nullptr);
sal_Size nSize;
sal_uInt32 nInfo;
sal_Size nConverted;
nSize = rtl_convertTextToUnicode(
aConverter, aContext, aText, 1 , aUnicode, 1 ,
(RTL_TEXTTOUNICODE_FLAGS_UNDEFINED_ERROR
| RTL_TEXTTOUNICODE_FLAGS_MBUNDEFINED_ERROR
| RTL_TEXTTOUNICODE_FLAGS_INVALID_ERROR),
&nInfo, &nConverted);
sal_uInt32 nExpectedInfo = (RTL_TEXTTOUNICODE_INFO_ERROR | RTL_TEXTTOUNICODE_INFO_UNDEFINED);
CPPUNIT_ASSERT_EQUAL(sal_Size(0 ), nSize);
CPPUNIT_ASSERT_EQUAL(nExpectedInfo, nInfo);
CPPUNIT_ASSERT_EQUAL(sal_Size(1 ), nConverted);
rtl_destroyTextToUnicodeContext(aConverter, aContext);
rtl_destroyTextToUnicodeConverter(aConverter);
}
}
}
int const TEST_STRING_SIZE = 1000 ;
struct ComplexCharSetTest {
rtl_TextEncoding m_nEncoding;
char const * m_pText;
sal_Size m_nTextSize;
sal_Unicode m_aUnicode[TEST_STRING_SIZE];
sal_Size m_nUnicodeSize;
bool m_bNoContext;
bool m_bForward;
bool m_bReverse;
bool m_bGlobalSignature;
sal_uInt32 m_nReverseUndefined;
};
void doComplexCharSetTest(ComplexCharSetTest const & rTest) {
if (rTest.m_bForward) {
sal_Unicode aUnicode[TEST_STRING_SIZE];
rtl_TextToUnicodeConverter aConverter
= rtl_createTextToUnicodeConverter(rTest.m_nEncoding);
CPPUNIT_ASSERT_MESSAGE(OUStringToOString(Concat2View("rtl_createTextToUnicodeConverter(" + OUString::createFromAscii(rtl_getMimeCharsetFromTextEncoding(rTest.m_nEncoding)) + ") failed" ),
RTL_TEXTENCODING_UTF8).getStr(),
aConverter != nullptr);
rtl_TextToUnicodeContext aContext
= rtl_createTextToUnicodeContext(aConverter);
CPPUNIT_ASSERT_MESSAGE("rtl_createTextToUnicodeContext failed" , aContext != nullptr);
sal_Size nSize;
sal_uInt32 nInfo;
sal_Size nConverted;
nSize = rtl_convertTextToUnicode(
aConverter, aContext,
reinterpret_cast < char const * >(rTest.m_pText),
rTest.m_nTextSize, aUnicode, TEST_STRING_SIZE,
(RTL_TEXTTOUNICODE_FLAGS_UNDEFINED_ERROR
| RTL_TEXTTOUNICODE_FLAGS_MBUNDEFINED_ERROR
| RTL_TEXTTOUNICODE_FLAGS_INVALID_ERROR
| RTL_TEXTTOUNICODE_FLAGS_FLUSH
| (rTest.m_bGlobalSignature ?
RTL_TEXTTOUNICODE_FLAGS_GLOBAL_SIGNATURE : 0 )),
&nInfo, &nConverted);
CPPUNIT_ASSERT_EQUAL(rTest.m_nUnicodeSize, nSize);
CPPUNIT_ASSERT_EQUAL(sal_uInt32(0 ), nInfo);
CPPUNIT_ASSERT_EQUAL(rTest.m_nTextSize, nConverted);
rtl_destroyTextToUnicodeContext(aConverter, aContext);
rtl_destroyTextToUnicodeConverter(aConverter);
for (sal_Size i = 0 ; i < rTest.m_nUnicodeSize; ++i) {
CPPUNIT_ASSERT_EQUAL_MESSAGE(OUStringToOString(Concat2View("aUnicode[" + OUString::number(i) + "] == " +
OUString::number(aUnicode[i], 16 ) +
", rTest.m_aUnicode[" + OUString::number(i) + "] == " +
OUString::number(rTest.m_aUnicode[i], 16 )),
RTL_TEXTENCODING_UTF8).getStr(),
rTest.m_aUnicode[i], aUnicode[i]);
}
}
if (rTest.m_bForward) {
sal_Unicode aUnicode[TEST_STRING_SIZE];
rtl_TextToUnicodeConverter aConverter
= rtl_createTextToUnicodeConverter(rTest.m_nEncoding);
CPPUNIT_ASSERT_MESSAGE(OUStringToOString(Concat2View("rtl_createTextToUnicodeConverter(" + OUString::createFromAscii(rtl_getMimeCharsetFromTextEncoding(rTest.m_nEncoding)) + ") failed" ),
RTL_TEXTENCODING_UTF8).getStr(),
aConverter != nullptr);
rtl_TextToUnicodeContext aContext
= rtl_createTextToUnicodeContext(aConverter);
CPPUNIT_ASSERT_MESSAGE("rtl_createTextToUnicodeContext failed" , aContext != nullptr);
if (aContext != reinterpret_cast <rtl_TextToUnicodeContext>(1 )) {
sal_Size nInput = 0 ;
sal_Size nOutput = 0 ;
for (bool bFlush = true ; nInput < rTest.m_nTextSize || bFlush;) {
sal_Size nSrcBytes = 1 ;
sal_uInt32 nFlags
= (RTL_TEXTTOUNICODE_FLAGS_UNDEFINED_ERROR
| RTL_TEXTTOUNICODE_FLAGS_MBUNDEFINED_ERROR
| RTL_TEXTTOUNICODE_FLAGS_INVALID_ERROR
| (rTest.m_bGlobalSignature ?
RTL_TEXTTOUNICODE_FLAGS_GLOBAL_SIGNATURE : 0 ));
if (nInput >= rTest.m_nTextSize) {
nSrcBytes = 0 ;
nFlags |= RTL_TEXTTOUNICODE_FLAGS_FLUSH;
bFlush = false ;
}
sal_uInt32 nInfo;
sal_Size nConverted;
sal_Size nSize = rtl_convertTextToUnicode(
aConverter, aContext,
rTest.m_pText + nInput,
nSrcBytes, aUnicode + nOutput, TEST_STRING_SIZE - nOutput,
nFlags, &nInfo, &nConverted);
nOutput += nSize;
nInput += nConverted;
CPPUNIT_ASSERT_EQUAL(sal_uInt32(0 ),
(nInfo & ~RTL_TEXTTOUNICODE_INFO_SRCBUFFERTOOSMALL));
}
CPPUNIT_ASSERT_EQUAL(rTest.m_nUnicodeSize, nOutput);
CPPUNIT_ASSERT_EQUAL(rTest.m_nTextSize, nInput);
for (sal_Size i = 0 ; i < rTest.m_nUnicodeSize; ++i) {
CPPUNIT_ASSERT_EQUAL_MESSAGE(OUStringToOString(Concat2View("aUnicode[" + OUString::number(i) + "] == " +
OUString::number(aUnicode[i], 16 ) +
", rTest.m_aUnicode[" + OUString::number(i) + "] == " +
OUString::number(rTest.m_aUnicode[i], 16 )),
RTL_TEXTENCODING_UTF8).getStr(),
rTest.m_aUnicode[i], aUnicode[i]);
}
}
rtl_destroyTextToUnicodeContext(aConverter, aContext);
rtl_destroyTextToUnicodeConverter(aConverter);
}
if (rTest.m_bNoContext && rTest.m_bForward) {
sal_Unicode aUnicode[TEST_STRING_SIZE] = { 0 , };
int nSize = 0 ;
rtl_TextToUnicodeConverter aConverter
= rtl_createTextToUnicodeConverter(rTest.m_nEncoding);
CPPUNIT_ASSERT_MESSAGE(OUStringToOString(Concat2View("rtl_createTextToUnicodeConverter(" + OUString::createFromAscii(rtl_getMimeCharsetFromTextEncoding(rTest.m_nEncoding)) + ") failed" ),
RTL_TEXTENCODING_UTF8).getStr(),
aConverter != nullptr);
for (sal_Size i = 0 ;;) {
if (i == rTest.m_nTextSize) {
goto done;
}
char c1 = rTest.m_pText[i++];
sal_Unicode aUC[2 ];
sal_uInt32 nInfo = 0 ;
sal_Size nCvtBytes;
sal_Size nChars = rtl_convertTextToUnicode(
aConverter, nullptr, &c1, 1 , aUC, 2 ,
(RTL_TEXTTOUNICODE_FLAGS_UNDEFINED_ERROR
| RTL_TEXTTOUNICODE_FLAGS_MBUNDEFINED_ERROR
| RTL_TEXTTOUNICODE_FLAGS_INVALID_ERROR
| (rTest.m_bGlobalSignature ?
RTL_TEXTTOUNICODE_FLAGS_GLOBAL_SIGNATURE : 0 )),
&nInfo, &nCvtBytes);
if ((nInfo & RTL_TEXTTOUNICODE_INFO_SRCBUFFERTOOSMALL) != 0 ) {
char sBuffer[10 ];
sBuffer[0 ] = c1;
sal_uInt16 nLen = 1 ;
while ((nInfo & RTL_TEXTTOUNICODE_INFO_SRCBUFFERTOOSMALL) != 0
&& nLen < 10 )
{
if (i == rTest.m_nTextSize) {
goto done;
}
c1 = rTest.m_pText[i++];
sBuffer[nLen++] = c1;
nChars = rtl_convertTextToUnicode(
aConverter, nullptr, sBuffer, nLen, aUC, 2 ,
(RTL_TEXTTOUNICODE_FLAGS_UNDEFINED_ERROR
| RTL_TEXTTOUNICODE_FLAGS_MBUNDEFINED_ERROR
| RTL_TEXTTOUNICODE_FLAGS_INVALID_ERROR
| (rTest.m_bGlobalSignature ?
RTL_TEXTTOUNICODE_FLAGS_GLOBAL_SIGNATURE : 0 )),
&nInfo, &nCvtBytes);
}
if (nChars == 1 && nInfo == 0 ) {
OSL_ASSERT(nCvtBytes == nLen);
aUnicode[nSize++] = aUC[0 ];
} else if (nChars == 2 && nInfo == 0 ) {
OSL_ASSERT(nCvtBytes == nLen);
aUnicode[nSize++] = aUC[0 ];
aUnicode[nSize++] = aUC[1 ];
} else {
OSL_ASSERT(
(nInfo & RTL_TEXTTOUNICODE_INFO_SRCBUFFERTOOSMALL) == 0
&& nChars == 0 && nInfo != 0 );
aUnicode[nSize++] = sBuffer[0 ];
i -= nLen - 1 ;
}
} else if (nChars == 1 && nInfo == 0 ) {
OSL_ASSERT(nCvtBytes == 1 );
aUnicode[nSize++] = aUC[0 ];
} else if (nChars == 2 && nInfo == 0 ) {
OSL_ASSERT(nCvtBytes == 1 );
aUnicode[nSize++] = aUC[0 ];
aUnicode[nSize++] = aUC[1 ];
} else {
OSL_ASSERT(nChars == 0 && nInfo != 0 );
aUnicode[nSize++] = c1;
}
}
done:
rtl_destroyTextToUnicodeConverter(aConverter);
for (sal_Size i = 0 ; i < rTest.m_nUnicodeSize; ++i) {
CPPUNIT_ASSERT_EQUAL_MESSAGE(OUStringToOString(Concat2View("aUnicode[" + OUString::number(i) + "] == " +
OUString::number(aUnicode[i], 16 ) +
", rTest.m_aUnicode[" + OUString::number(i) + "] == " +
OUString::number(rTest.m_aUnicode[i], 16 )),
RTL_TEXTENCODING_UTF8).getStr(),
rTest.m_aUnicode[i], aUnicode[i]);
}
}
if (rTest.m_bReverse) {
char aText[TEST_STRING_SIZE];
rtl_UnicodeToTextConverter aConverter
= rtl_createUnicodeToTextConverter(rTest.m_nEncoding);
CPPUNIT_ASSERT_MESSAGE(OUStringToOString(Concat2View("rtl_createTextToUnicodeConverter(" + OUString::createFromAscii(rtl_getMimeCharsetFromTextEncoding(rTest.m_nEncoding)) + ") failed" ),
RTL_TEXTENCODING_UTF8).getStr(),
aConverter != nullptr);
rtl_UnicodeToTextContext aContext
= rtl_createUnicodeToTextContext(aConverter);
CPPUNIT_ASSERT_MESSAGE("rtl_createTextToUnicodeContext failed" , aContext != nullptr);
sal_Size nSize;
sal_uInt32 nInfo;
sal_Size nConverted;
nSize = rtl_convertUnicodeToText(
aConverter, aContext, rTest.m_aUnicode, rTest.m_nUnicodeSize, aText,
TEST_STRING_SIZE,
(rTest.m_nReverseUndefined | RTL_UNICODETOTEXT_FLAGS_INVALID_ERROR
| RTL_UNICODETOTEXT_FLAGS_FLUSH
| (rTest.m_bGlobalSignature ?
RTL_UNICODETOTEXT_FLAGS_GLOBAL_SIGNATURE : 0 )),
&nInfo, &nConverted);
CPPUNIT_ASSERT_EQUAL(rTest.m_nTextSize, nSize);
if (nInfo != 0 )
{
CPPUNIT_ASSERT_EQUAL(RTL_UNICODETOTEXT_INFO_UNDEFINED, nInfo);
CPPUNIT_ASSERT_MESSAGE("rTest.m_nReverseUndefined should not be RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR" ,
rTest.m_nReverseUndefined != RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR);
}
CPPUNIT_ASSERT_EQUAL(rTest.m_nUnicodeSize, nConverted);
rtl_destroyUnicodeToTextContext(aConverter, aContext);
rtl_destroyUnicodeToTextConverter(aConverter);
for (sal_Size i = 0 ; i < rTest.m_nTextSize; ++i) {
CPPUNIT_ASSERT_EQUAL_MESSAGE(OUStringToOString(Concat2View("aText[" + OUString::number(i) + "] == " +
OUString::number(aText[i], 16 ) +
", rTest.m_pText[" + OUString::number(i) + "] == " +
OUString::number(rTest.m_pText[i], 16 )),
RTL_TEXTENCODING_UTF8).getStr(),
rTest.m_pText[i], aText[i]);
}
}
}
void doComplexCharSetCutTest(ComplexCharSetTest const & rTest) {
if (rTest.m_bNoContext) {
sal_Unicode aUnicode[TEST_STRING_SIZE];
rtl_TextToUnicodeConverter aConverter
= rtl_createTextToUnicodeConverter(rTest.m_nEncoding);
CPPUNIT_ASSERT_MESSAGE(OUStringToOString(Concat2View("rtl_createTextToUnicodeConverter(" + OUString::createFromAscii(rtl_getMimeCharsetFromTextEncoding(rTest.m_nEncoding)) + ") failed" ),
RTL_TEXTENCODING_UTF8).getStr(),
aConverter != nullptr);
sal_Size nSize;
sal_uInt32 nInfo;
sal_Size nConverted;
nSize = rtl_convertTextToUnicode(
aConverter, nullptr, reinterpret_cast < char const * >(rTest.m_pText),
rTest.m_nTextSize, aUnicode, TEST_STRING_SIZE,
(RTL_TEXTTOUNICODE_FLAGS_UNDEFINED_ERROR
| RTL_TEXTTOUNICODE_FLAGS_MBUNDEFINED_ERROR
| RTL_TEXTTOUNICODE_FLAGS_INVALID_ERROR),
&nInfo, &nConverted);
CPPUNIT_ASSERT_EQUAL(rTest.m_nUnicodeSize, nSize);
if (nInfo != RTL_TEXTTOUNICODE_INFO_SRCBUFFERTOOSMALL)
{
CPPUNIT_ASSERT_EQUAL(RTL_TEXTTOUNICODE_INFO_ERROR | RTL_TEXTTOUNICODE_INFO_SRCBUFFERTOOSMALL,
nInfo);
}
CPPUNIT_ASSERT_MESSAGE("nConverted should be less than rTest.m_nTextSize" , nConverted < rTest.m_nTextSize);
rtl_destroyTextToUnicodeConverter(aConverter);
for (sal_Size i = 0 ; i < nSize; ++i) {
CPPUNIT_ASSERT_EQUAL_MESSAGE(OUStringToOString(Concat2View("aUnicode[" + OUString::number(i) + "] == " +
OUString::number(aUnicode[i], 16 ) +
", rTest.m_aUnicode[" + OUString::number(i) + "] == " +
OUString::number(rTest.m_aUnicode[i], 16 )),
RTL_TEXTENCODING_UTF8).getStr(),
rTest.m_aUnicode[i], aUnicode[i]);
}
}
}
class Test: public CppUnit::TestFixture {
public :
void testSingleByte();
void testComplex();
void testComplexCut();
void testInvalidUtf7();
void testInvalidUtf8();
void testInvalidUnicode();
void testSRCBUFFERTOSMALL();
void testMime();
void testWindows();
void testInfo();
CPPUNIT_TEST_SUITE(Test);
CPPUNIT_TEST(testSingleByte);
CPPUNIT_TEST(testComplex);
CPPUNIT_TEST(testComplexCut);
CPPUNIT_TEST(testInvalidUtf7);
CPPUNIT_TEST(testInvalidUtf8);
CPPUNIT_TEST(testInvalidUnicode);
CPPUNIT_TEST(testSRCBUFFERTOSMALL);
CPPUNIT_TEST(testMime);
CPPUNIT_TEST(testWindows);
CPPUNIT_TEST(testInfo);
CPPUNIT_TEST_SUITE_END();
};
void Test::testSingleByte() {
static SingleByteCharSet const data[]
= { { RTL_TEXTENCODING_MS_1250,
{ 0 x0000,0 x0001,0 x0002,0 x0003,0 x0004,0 x0005,0 x0006,0 x0007,
0 x0008,0 x0009,0 x000A,0 x000B,0 x000C,0 x000D,0 x000E,0 x000F,
0 x0010,0 x0011,0 x0012,0 x0013,0 x0014,0 x0015,0 x0016,0 x0017,
0 x0018,0 x0019,0 x001A,0 x001B,0 x001C,0 x001D,0 x001E,0 x001F,
0 x0020,0 x0021,0 x0022,0 x0023,0 x0024,0 x0025,0 x0026,0 x0027,
0 x0028,0 x0029,0 x002A,0 x002B,0 x002C,0 x002D,0 x002E,0 x002F,
0 x0030,0 x0031,0 x0032,0 x0033,0 x0034,0 x0035,0 x0036,0 x0037,
0 x0038,0 x0039,0 x003A,0 x003B,0 x003C,0 x003D,0 x003E,0 x003F,
0 x0040,0 x0041,0 x0042,0 x0043,0 x0044,0 x0045,0 x0046,0 x0047,
0 x0048,0 x0049,0 x004A,0 x004B,0 x004C,0 x004D,0 x004E,0 x004F,
0 x0050,0 x0051,0 x0052,0 x0053,0 x0054,0 x0055,0 x0056,0 x0057,
0 x0058,0 x0059,0 x005A,0 x005B,0 x005C,0 x005D,0 x005E,0 x005F,
0 x0060,0 x0061,0 x0062,0 x0063,0 x0064,0 x0065,0 x0066,0 x0067,
0 x0068,0 x0069,0 x006A,0 x006B,0 x006C,0 x006D,0 x006E,0 x006F,
0 x0070,0 x0071,0 x0072,0 x0073,0 x0074,0 x0075,0 x0076,0 x0077,
0 x0078,0 x0079,0 x007A,0 x007B,0 x007C,0 x007D,0 x007E,0 x007F,
0 x20AC,0 xFFFF,0 x201A,0 xFFFF,0 x201E,0 x2026,0 x2020,0 x2021,
0 xFFFF,0 x2030,0 x0160,0 x2039,0 x015A,0 x0164,0 x017D,0 x0179,
0 xFFFF,0 x2018,0 x2019,0 x201C,0 x201D,0 x2022,0 x2013,0 x2014,
0 xFFFF,0 x2122,0 x0161,0 x203A,0 x015B,0 x0165,0 x017E,0 x017A,
0 x00A0,0 x02C7,0 x02D8,0 x0141,0 x00A4,0 x0104,0 x00A6,0 x00A7,
0 x00A8,0 x00A9,0 x015E,0 x00AB,0 x00AC,0 x00AD,0 x00AE,0 x017B,
0 x00B0,0 x00B1,0 x02DB,0 x0142,0 x00B4,0 x00B5,0 x00B6,0 x00B7,
0 x00B8,0 x0105,0 x015F,0 x00BB,0 x013D,0 x02DD,0 x013E,0 x017C,
0 x0154,0 x00C1,0 x00C2,0 x0102,0 x00C4,0 x0139,0 x0106,0 x00C7,
0 x010C,0 x00C9,0 x0118,0 x00CB,0 x011A,0 x00CD,0 x00CE,0 x010E,
0 x0110,0 x0143,0 x0147,0 x00D3,0 x00D4,0 x0150,0 x00D6,0 x00D7,
0 x0158,0 x016E,0 x00DA,0 x0170,0 x00DC,0 x00DD,0 x0162,0 x00DF,
0 x0155,0 x00E1,0 x00E2,0 x0103,0 x00E4,0 x013A,0 x0107,0 x00E7,
0 x010D,0 x00E9,0 x0119,0 x00EB,0 x011B,0 x00ED,0 x00EE,0 x010F,
0 x0111,0 x0144,0 x0148,0 x00F3,0 x00F4,0 x0151,0 x00F6,0 x00F7,
0 x0159,0 x016F,0 x00FA,0 x0171,0 x00FC,0 x00FD,0 x0163,0 x02D9 } },
{ RTL_TEXTENCODING_MS_1251,
{ 0 x0000,0 x0001,0 x0002,0 x0003,0 x0004,0 x0005,0 x0006,0 x0007,
0 x0008,0 x0009,0 x000A,0 x000B,0 x000C,0 x000D,0 x000E,0 x000F,
0 x0010,0 x0011,0 x0012,0 x0013,0 x0014,0 x0015,0 x0016,0 x0017,
0 x0018,0 x0019,0 x001A,0 x001B,0 x001C,0 x001D,0 x001E,0 x001F,
0 x0020,0 x0021,0 x0022,0 x0023,0 x0024,0 x0025,0 x0026,0 x0027,
0 x0028,0 x0029,0 x002A,0 x002B,0 x002C,0 x002D,0 x002E,0 x002F,
0 x0030,0 x0031,0 x0032,0 x0033,0 x0034,0 x0035,0 x0036,0 x0037,
0 x0038,0 x0039,0 x003A,0 x003B,0 x003C,0 x003D,0 x003E,0 x003F,
0 x0040,0 x0041,0 x0042,0 x0043,0 x0044,0 x0045,0 x0046,0 x0047,
0 x0048,0 x0049,0 x004A,0 x004B,0 x004C,0 x004D,0 x004E,0 x004F,
0 x0050,0 x0051,0 x0052,0 x0053,0 x0054,0 x0055,0 x0056,0 x0057,
0 x0058,0 x0059,0 x005A,0 x005B,0 x005C,0 x005D,0 x005E,0 x005F,
0 x0060,0 x0061,0 x0062,0 x0063,0 x0064,0 x0065,0 x0066,0 x0067,
0 x0068,0 x0069,0 x006A,0 x006B,0 x006C,0 x006D,0 x006E,0 x006F,
0 x0070,0 x0071,0 x0072,0 x0073,0 x0074,0 x0075,0 x0076,0 x0077,
0 x0078,0 x0079,0 x007A,0 x007B,0 x007C,0 x007D,0 x007E,0 x007F,
0 x0402,0 x0403,0 x201A,0 x0453,0 x201E,0 x2026,0 x2020,0 x2021,
0 x20AC,0 x2030,0 x0409,0 x2039,0 x040A,0 x040C,0 x040B,0 x040F,
0 x0452,0 x2018,0 x2019,0 x201C,0 x201D,0 x2022,0 x2013,0 x2014,
0 xFFFF,0 x2122,0 x0459,0 x203A,0 x045A,0 x045C,0 x045B,0 x045F,
0 x00A0,0 x040E,0 x045E,0 x0408,0 x00A4,0 x0490,0 x00A6,0 x00A7,
0 x0401,0 x00A9,0 x0404,0 x00AB,0 x00AC,0 x00AD,0 x00AE,0 x0407,
0 x00B0,0 x00B1,0 x0406,0 x0456,0 x0491,0 x00B5,0 x00B6,0 x00B7,
0 x0451,0 x2116,0 x0454,0 x00BB,0 x0458,0 x0405,0 x0455,0 x0457,
0 x0410,0 x0411,0 x0412,0 x0413,0 x0414,0 x0415,0 x0416,0 x0417,
0 x0418,0 x0419,0 x041A,0 x041B,0 x041C,0 x041D,0 x041E,0 x041F,
0 x0420,0 x0421,0 x0422,0 x0423,0 x0424,0 x0425,0 x0426,0 x0427,
0 x0428,0 x0429,0 x042A,0 x042B,0 x042C,0 x042D,0 x042E,0 x042F,
0 x0430,0 x0431,0 x0432,0 x0433,0 x0434,0 x0435,0 x0436,0 x0437,
0 x0438,0 x0439,0 x043A,0 x043B,0 x043C,0 x043D,0 x043E,0 x043F,
0 x0440,0 x0441,0 x0442,0 x0443,0 x0444,0 x0445,0 x0446,0 x0447,
0 x0448,0 x0449,0 x044A,0 x044B,0 x044C,0 x044D,0 x044E,0 x044F } },
{ RTL_TEXTENCODING_MS_1252,
{ 0 x0000,0 x0001,0 x0002,0 x0003,0 x0004,0 x0005,0 x0006,0 x0007,
0 x0008,0 x0009,0 x000A,0 x000B,0 x000C,0 x000D,0 x000E,0 x000F,
0 x0010,0 x0011,0 x0012,0 x0013,0 x0014,0 x0015,0 x0016,0 x0017,
0 x0018,0 x0019,0 x001A,0 x001B,0 x001C,0 x001D,0 x001E,0 x001F,
0 x0020,0 x0021,0 x0022,0 x0023,0 x0024,0 x0025,0 x0026,0 x0027,
0 x0028,0 x0029,0 x002A,0 x002B,0 x002C,0 x002D,0 x002E,0 x002F,
0 x0030,0 x0031,0 x0032,0 x0033,0 x0034,0 x0035,0 x0036,0 x0037,
0 x0038,0 x0039,0 x003A,0 x003B,0 x003C,0 x003D,0 x003E,0 x003F,
0 x0040,0 x0041,0 x0042,0 x0043,0 x0044,0 x0045,0 x0046,0 x0047,
0 x0048,0 x0049,0 x004A,0 x004B,0 x004C,0 x004D,0 x004E,0 x004F,
0 x0050,0 x0051,0 x0052,0 x0053,0 x0054,0 x0055,0 x0056,0 x0057,
0 x0058,0 x0059,0 x005A,0 x005B,0 x005C,0 x005D,0 x005E,0 x005F,
0 x0060,0 x0061,0 x0062,0 x0063,0 x0064,0 x0065,0 x0066,0 x0067,
0 x0068,0 x0069,0 x006A,0 x006B,0 x006C,0 x006D,0 x006E,0 x006F,
0 x0070,0 x0071,0 x0072,0 x0073,0 x0074,0 x0075,0 x0076,0 x0077,
0 x0078,0 x0079,0 x007A,0 x007B,0 x007C,0 x007D,0 x007E,0 x007F,
0 x20AC,0 xFFFF,0 x201A,0 x0192,0 x201E,0 x2026,0 x2020,0 x2021,
0 x02C6,0 x2030,0 x0160,0 x2039,0 x0152,0 xFFFF,0 x017D,0 xFFFF,
0 xFFFF,0 x2018,0 x2019,0 x201C,0 x201D,0 x2022,0 x2013,0 x2014,
0 x02DC,0 x2122,0 x0161,0 x203A,0 x0153,0 xFFFF,0 x017E,0 x0178,
0 x00A0,0 x00A1,0 x00A2,0 x00A3,0 x00A4,0 x00A5,0 x00A6,0 x00A7,
0 x00A8,0 x00A9,0 x00AA,0 x00AB,0 x00AC,0 x00AD,0 x00AE,0 x00AF,
0 x00B0,0 x00B1,0 x00B2,0 x00B3,0 x00B4,0 x00B5,0 x00B6,0 x00B7,
0 x00B8,0 x00B9,0 x00BA,0 x00BB,0 x00BC,0 x00BD,0 x00BE,0 x00BF,
0 x00C0,0 x00C1,0 x00C2,0 x00C3,0 x00C4,0 x00C5,0 x00C6,0 x00C7,
0 x00C8,0 x00C9,0 x00CA,0 x00CB,0 x00CC,0 x00CD,0 x00CE,0 x00CF,
0 x00D0,0 x00D1,0 x00D2,0 x00D3,0 x00D4,0 x00D5,0 x00D6,0 x00D7,
0 x00D8,0 x00D9,0 x00DA,0 x00DB,0 x00DC,0 x00DD,0 x00DE,0 x00DF,
0 x00E0,0 x00E1,0 x00E2,0 x00E3,0 x00E4,0 x00E5,0 x00E6,0 x00E7,
0 x00E8,0 x00E9,0 x00EA,0 x00EB,0 x00EC,0 x00ED,0 x00EE,0 x00EF,
0 x00F0,0 x00F1,0 x00F2,0 x00F3,0 x00F4,0 x00F5,0 x00F6,0 x00F7,
0 x00F8,0 x00F9,0 x00FA,0 x00FB,0 x00FC,0 x00FD,0 x00FE,0 x00FF } },
{ RTL_TEXTENCODING_MS_1253,
{ 0 x0000,0 x0001,0 x0002,0 x0003,0 x0004,0 x0005,0 x0006,0 x0007,
0 x0008,0 x0009,0 x000A,0 x000B,0 x000C,0 x000D,0 x000E,0 x000F,
0 x0010,0 x0011,0 x0012,0 x0013,0 x0014,0 x0015,0 x0016,0 x0017,
0 x0018,0 x0019,0 x001A,0 x001B,0 x001C,0 x001D,0 x001E,0 x001F,
0 x0020,0 x0021,0 x0022,0 x0023,0 x0024,0 x0025,0 x0026,0 x0027,
0 x0028,0 x0029,0 x002A,0 x002B,0 x002C,0 x002D,0 x002E,0 x002F,
0 x0030,0 x0031,0 x0032,0 x0033,0 x0034,0 x0035,0 x0036,0 x0037,
0 x0038,0 x0039,0 x003A,0 x003B,0 x003C,0 x003D,0 x003E,0 x003F,
0 x0040,0 x0041,0 x0042,0 x0043,0 x0044,0 x0045,0 x0046,0 x0047,
0 x0048,0 x0049,0 x004A,0 x004B,0 x004C,0 x004D,0 x004E,0 x004F,
0 x0050,0 x0051,0 x0052,0 x0053,0 x0054,0 x0055,0 x0056,0 x0057,
0 x0058,0 x0059,0 x005A,0 x005B,0 x005C,0 x005D,0 x005E,0 x005F,
0 x0060,0 x0061,0 x0062,0 x0063,0 x0064,0 x0065,0 x0066,0 x0067,
0 x0068,0 x0069,0 x006A,0 x006B,0 x006C,0 x006D,0 x006E,0 x006F,
0 x0070,0 x0071,0 x0072,0 x0073,0 x0074,0 x0075,0 x0076,0 x0077,
0 x0078,0 x0079,0 x007A,0 x007B,0 x007C,0 x007D,0 x007E,0 x007F,
0 x20AC,0 xFFFF,0 x201A,0 x0192,0 x201E,0 x2026,0 x2020,0 x2021,
0 xFFFF,0 x2030,0 xFFFF,0 x2039,0 xFFFF,0 xFFFF,0 xFFFF,0 xFFFF,
0 xFFFF,0 x2018,0 x2019,0 x201C,0 x201D,0 x2022,0 x2013,0 x2014,
0 xFFFF,0 x2122,0 xFFFF,0 x203A,0 xFFFF,0 xFFFF,0 xFFFF,0 xFFFF,
0 x00A0,0 x0385,0 x0386,0 x00A3,0 x00A4,0 x00A5,0 x00A6,0 x00A7,
0 x00A8,0 x00A9,0 xFFFF,0 x00AB,0 x00AC,0 x00AD,0 x00AE,0 x2015,
0 x00B0,0 x00B1,0 x00B2,0 x00B3,0 x0384,0 x00B5,0 x00B6,0 x00B7,
0 x0388,0 x0389,0 x038A,0 x00BB,0 x038C,0 x00BD,0 x038E,0 x038F,
0 x0390,0 x0391,0 x0392,0 x0393,0 x0394,0 x0395,0 x0396,0 x0397,
0 x0398,0 x0399,0 x039A,0 x039B,0 x039C,0 x039D,0 x039E,0 x039F,
0 x03A0,0 x03A1,0 xFFFF,0 x03A3,0 x03A4,0 x03A5,0 x03A6,0 x03A7,
0 x03A8,0 x03A9,0 x03AA,0 x03AB,0 x03AC,0 x03AD,0 x03AE,0 x03AF,
0 x03B0,0 x03B1,0 x03B2,0 x03B3,0 x03B4,0 x03B5,0 x03B6,0 x03B7,
0 x03B8,0 x03B9,0 x03BA,0 x03BB,0 x03BC,0 x03BD,0 x03BE,0 x03BF,
0 x03C0,0 x03C1,0 x03C2,0 x03C3,0 x03C4,0 x03C5,0 x03C6,0 x03C7,
0 x03C8,0 x03C9,0 x03CA,0 x03CB,0 x03CC,0 x03CD,0 x03CE,0 xFFFF } },
{ RTL_TEXTENCODING_MS_1254,
{ 0 x0000,0 x0001,0 x0002,0 x0003,0 x0004,0 x0005,0 x0006,0 x0007,
0 x0008,0 x0009,0 x000A,0 x000B,0 x000C,0 x000D,0 x000E,0 x000F,
0 x0010,0 x0011,0 x0012,0 x0013,0 x0014,0 x0015,0 x0016,0 x0017,
0 x0018,0 x0019,0 x001A,0 x001B,0 x001C,0 x001D,0 x001E,0 x001F,
0 x0020,0 x0021,0 x0022,0 x0023,0 x0024,0 x0025,0 x0026,0 x0027,
0 x0028,0 x0029,0 x002A,0 x002B,0 x002C,0 x002D,0 x002E,0 x002F,
0 x0030,0 x0031,0 x0032,0 x0033,0 x0034,0 x0035,0 x0036,0 x0037,
0 x0038,0 x0039,0 x003A,0 x003B,0 x003C,0 x003D,0 x003E,0 x003F,
0 x0040,0 x0041,0 x0042,0 x0043,0 x0044,0 x0045,0 x0046,0 x0047,
0 x0048,0 x0049,0 x004A,0 x004B,0 x004C,0 x004D,0 x004E,0 x004F,
0 x0050,0 x0051,0 x0052,0 x0053,0 x0054,0 x0055,0 x0056,0 x0057,
0 x0058,0 x0059,0 x005A,0 x005B,0 x005C,0 x005D,0 x005E,0 x005F,
0 x0060,0 x0061,0 x0062,0 x0063,0 x0064,0 x0065,0 x0066,0 x0067,
0 x0068,0 x0069,0 x006A,0 x006B,0 x006C,0 x006D,0 x006E,0 x006F,
0 x0070,0 x0071,0 x0072,0 x0073,0 x0074,0 x0075,0 x0076,0 x0077,
0 x0078,0 x0079,0 x007A,0 x007B,0 x007C,0 x007D,0 x007E,0 x007F,
0 x20AC,0 xFFFF,0 x201A,0 x0192,0 x201E,0 x2026,0 x2020,0 x2021,
0 x02C6,0 x2030,0 x0160,0 x2039,0 x0152,0 xFFFF,0 xFFFF,0 xFFFF,
0 xFFFF,0 x2018,0 x2019,0 x201C,0 x201D,0 x2022,0 x2013,0 x2014,
0 x02DC,0 x2122,0 x0161,0 x203A,0 x0153,0 xFFFF,0 xFFFF,0 x0178,
0 x00A0,0 x00A1,0 x00A2,0 x00A3,0 x00A4,0 x00A5,0 x00A6,0 x00A7,
0 x00A8,0 x00A9,0 x00AA,0 x00AB,0 x00AC,0 x00AD,0 x00AE,0 x00AF,
0 x00B0,0 x00B1,0 x00B2,0 x00B3,0 x00B4,0 x00B5,0 x00B6,0 x00B7,
0 x00B8,0 x00B9,0 x00BA,0 x00BB,0 x00BC,0 x00BD,0 x00BE,0 x00BF,
0 x00C0,0 x00C1,0 x00C2,0 x00C3,0 x00C4,0 x00C5,0 x00C6,0 x00C7,
0 x00C8,0 x00C9,0 x00CA,0 x00CB,0 x00CC,0 x00CD,0 x00CE,0 x00CF,
0 x011E,0 x00D1,0 x00D2,0 x00D3,0 x00D4,0 x00D5,0 x00D6,0 x00D7,
0 x00D8,0 x00D9,0 x00DA,0 x00DB,0 x00DC,0 x0130,0 x015E,0 x00DF,
0 x00E0,0 x00E1,0 x00E2,0 x00E3,0 x00E4,0 x00E5,0 x00E6,0 x00E7,
0 x00E8,0 x00E9,0 x00EA,0 x00EB,0 x00EC,0 x00ED,0 x00EE,0 x00EF,
0 x011F,0 x00F1,0 x00F2,0 x00F3,0 x00F4,0 x00F5,0 x00F6,0 x00F7,
0 x00F8,0 x00F9,0 x00FA,0 x00FB,0 x00FC,0 x0131,0 x015F,0 x00FF } },
{ RTL_TEXTENCODING_APPLE_ROMAN,
{ 0 x00, 0 x01, 0 x02, 0 x03, 0 x04, 0 x05, 0 x06, 0 x07,
0 x08, 0 x09, 0 x0A, 0 x0B, 0 x0C, 0 x0D, 0 x0E, 0 x0F,
0 x10, 0 x11, 0 x12, 0 x13, 0 x14, 0 x15, 0 x16, 0 x17,
0 x18, 0 x19, 0 x1A, 0 x1B, 0 x1C, 0 x1D, 0 x1E, 0 x1F,
0 x0020,0 x0021,0 x0022,0 x0023,0 x0024,0 x0025,0 x0026,0 x0027,
0 x0028,0 x0029,0 x002A,0 x002B,0 x002C,0 x002D,0 x002E,0 x002F,
0 x0030,0 x0031,0 x0032,0 x0033,0 x0034,0 x0035,0 x0036,0 x0037,
0 x0038,0 x0039,0 x003A,0 x003B,0 x003C,0 x003D,0 x003E,0 x003F,
0 x0040,0 x0041,0 x0042,0 x0043,0 x0044,0 x0045,0 x0046,0 x0047,
0 x0048,0 x0049,0 x004A,0 x004B,0 x004C,0 x004D,0 x004E,0 x004F,
0 x0050,0 x0051,0 x0052,0 x0053,0 x0054,0 x0055,0 x0056,0 x0057,
0 x0058,0 x0059,0 x005A,0 x005B,0 x005C,0 x005D,0 x005E,0 x005F,
0 x0060,0 x0061,0 x0062,0 x0063,0 x0064,0 x0065,0 x0066,0 x0067,
0 x0068,0 x0069,0 x006A,0 x006B,0 x006C,0 x006D,0 x006E,0 x006F,
0 x0070,0 x0071,0 x0072,0 x0073,0 x0074,0 x0075,0 x0076,0 x0077,
0 x0078,0 x0079,0 x007A,0 x007B,0 x007C,0 x007D,0 x007E, 0 x7F,
0 x00C4,0 x00C5,0 x00C7,0 x00C9,0 x00D1,0 x00D6,0 x00DC,0 x00E1,
0 x00E0,0 x00E2,0 x00E4,0 x00E3,0 x00E5,0 x00E7,0 x00E9,0 x00E8,
0 x00EA,0 x00EB,0 x00ED,0 x00EC,0 x00EE,0 x00EF,0 x00F1,0 x00F3,
0 x00F2,0 x00F4,0 x00F6,0 x00F5,0 x00FA,0 x00F9,0 x00FB,0 x00FC,
0 x2020,0 x00B0,0 x00A2,0 x00A3,0 x00A7,0 x2022,0 x00B6,0 x00DF,
0 x00AE,0 x00A9,0 x2122,0 x00B4,0 x00A8,0 x2260,0 x00C6,0 x00D8,
0 x221E,0 x00B1,0 x2264,0 x2265,0 x00A5,0 x00B5,0 x2202,0 x2211,
0 x220F,0 x03C0,0 x222B,0 x00AA,0 x00BA,0 x03A9,0 x00E6,0 x00F8,
0 x00BF,0 x00A1,0 x00AC,0 x221A,0 x0192,0 x2248,0 x2206,0 x00AB,
0 x00BB,0 x2026,0 x00A0,0 x00C0,0 x00C3,0 x00D5,0 x0152,0 x0153,
0 x2013,0 x2014,0 x201C,0 x201D,0 x2018,0 x2019,0 x00F7,0 x25CA,
0 x00FF,0 x0178,0 x2044,0 x20AC,0 x2039,0 x203A,0 xFB01,0 xFB02,
0 x2021,0 x00B7,0 x201A,0 x201E,0 x2030,0 x00C2,0 x00CA,0 x00C1,
0 x00CB,0 x00C8,0 x00CD,0 x00CE,0 x00CF,0 x00CC,0 x00D3,0 x00D4,
0 xF8FF,0 x00D2,0 x00DA,0 x00DB,0 x00D9,0 x0131,0 x02C6,0 x02DC,
0 x00AF,0 x02D8,0 x02D9,0 x02DA,0 x00B8,0 x02DD,0 x02DB,0 x02C7 } },
{ RTL_TEXTENCODING_IBM_437,
{ 0 x0000,0 x0001,0 x0002,0 x0003,0 x0004,0 x0005,0 x0006,0 x0007,
0 x0008,0 x0009,0 x000A,0 x000B,0 x000C,0 x000D,0 x000E,0 x000F,
0 x0010,0 x0011,0 x0012,0 x0013,0 x0014,0 x0015,0 x0016,0 x0017,
0 x0018,0 x0019,0 x001A,0 x001B,0 x001C,0 x001D,0 x001E,0 x001F,
0 x0020,0 x0021,0 x0022,0 x0023,0 x0024,0 x0025,0 x0026,0 x0027,
0 x0028,0 x0029,0 x002A,0 x002B,0 x002C,0 x002D,0 x002E,0 x002F,
0 x0030,0 x0031,0 x0032,0 x0033,0 x0034,0 x0035,0 x0036,0 x0037,
0 x0038,0 x0039,0 x003A,0 x003B,0 x003C,0 x003D,0 x003E,0 x003F,
0 x0040,0 x0041,0 x0042,0 x0043,0 x0044,0 x0045,0 x0046,0 x0047,
0 x0048,0 x0049,0 x004A,0 x004B,0 x004C,0 x004D,0 x004E,0 x004F,
0 x0050,0 x0051,0 x0052,0 x0053,0 x0054,0 x0055,0 x0056,0 x0057,
0 x0058,0 x0059,0 x005A,0 x005B,0 x005C,0 x005D,0 x005E,0 x005F,
0 x0060,0 x0061,0 x0062,0 x0063,0 x0064,0 x0065,0 x0066,0 x0067,
0 x0068,0 x0069,0 x006A,0 x006B,0 x006C,0 x006D,0 x006E,0 x006F,
0 x0070,0 x0071,0 x0072,0 x0073,0 x0074,0 x0075,0 x0076,0 x0077,
0 x0078,0 x0079,0 x007A,0 x007B,0 x007C,0 x007D,0 x007E,0 x007F,
0 x00c7,0 x00fc,0 x00e9,0 x00e2,0 x00e4,0 x00e0,0 x00e5,0 x00e7,
0 x00ea,0 x00eb,0 x00e8,0 x00ef,0 x00ee,0 x00ec,0 x00c4,0 x00c5,
0 x00c9,0 x00e6,0 x00c6,0 x00f4,0 x00f6,0 x00f2,0 x00fb,0 x00f9,
0 x00ff,0 x00d6,0 x00dc,0 x00a2,0 x00a3,0 x00a5,0 x20a7,0 x0192,
0 x00e1,0 x00ed,0 x00f3,0 x00fa,0 x00f1,0 x00d1,0 x00aa,0 x00ba,
0 x00bf,0 x2310,0 x00ac,0 x00bd,0 x00bc,0 x00a1,0 x00ab,0 x00bb,
0 x2591,0 x2592,0 x2593,0 x2502,0 x2524,0 x2561,0 x2562,0 x2556,
0 x2555,0 x2563,0 x2551,0 x2557,0 x255d,0 x255c,0 x255b,0 x2510,
0 x2514,0 x2534,0 x252c,0 x251c,0 x2500,0 x253c,0 x255e,0 x255f,
0 x255a,0 x2554,0 x2569,0 x2566,0 x2560,0 x2550,0 x256c,0 x2567,
0 x2568,0 x2564,0 x2565,0 x2559,0 x2558,0 x2552,0 x2553,0 x256b,
0 x256a,0 x2518,0 x250c,0 x2588,0 x2584,0 x258c,0 x2590,0 x2580,
0 x03b1,0 x00df,0 x0393,0 x03c0,0 x03a3,0 x03c3,0 x00b5,0 x03c4,
0 x03a6,0 x0398,0 x03a9,0 x03b4,0 x221e,0 x03c6,0 x03b5,0 x2229,
0 x2261,0 x00b1,0 x2265,0 x2264,0 x2320,0 x2321,0 x00f7,0 x2248,
0 x00b0,0 x2219,0 x00b7,0 x221a,0 x207f,0 x00b2,0 x25a0,0 x00a0 } },
{ RTL_TEXTENCODING_ASCII_US,
{ 0 x0000,0 x0001,0 x0002,0 x0003,0 x0004,0 x0005,0 x0006,0 x0007,
0 x0008,0 x0009,0 x000A,0 x000B,0 x000C,0 x000D,0 x000E,0 x000F,
0 x0010,0 x0011,0 x0012,0 x0013,0 x0014,0 x0015,0 x0016,0 x0017,
0 x0018,0 x0019,0 x001A,0 x001B,0 x001C,0 x001D,0 x001E,0 x001F,
0 x0020,0 x0021,0 x0022,0 x0023,0 x0024,0 x0025,0 x0026,0 x0027,
0 x0028,0 x0029,0 x002A,0 x002B,0 x002C,0 x002D,0 x002E,0 x002F,
0 x0030,0 x0031,0 x0032,0 x0033,0 x0034,0 x0035,0 x0036,0 x0037,
0 x0038,0 x0039,0 x003A,0 x003B,0 x003C,0 x003D,0 x003E,0 x003F,
0 x0040,0 x0041,0 x0042,0 x0043,0 x0044,0 x0045,0 x0046,0 x0047,
0 x0048,0 x0049,0 x004A,0 x004B,0 x004C,0 x004D,0 x004E,0 x004F,
0 x0050,0 x0051,0 x0052,0 x0053,0 x0054,0 x0055,0 x0056,0 x0057,
0 x0058,0 x0059,0 x005A,0 x005B,0 x005C,0 x005D,0 x005E,0 x005F,
0 x0060,0 x0061,0 x0062,0 x0063,0 x0064,0 x0065,0 x0066,0 x0067,
0 x0068,0 x0069,0 x006A,0 x006B,0 x006C,0 x006D,0 x006E,0 x006F,
0 x0070,0 x0071,0 x0072,0 x0073,0 x0074,0 x0075,0 x0076,0 x0077,
0 x0078,0 x0079,0 x007A,0 x007B,0 x007C,0 x007D,0 x007E,0 x007F,
0 x20AC,0 xFFFF,0 x201A,0 x0192,0 x201E,0 x2026,0 x2020,0 x2021, // !
0 x02C6,0 x2030,0 x0160,0 x2039,0 x0152,0 xFFFF,0 x017D,0 xFFFF, // !
0 xFFFF,0 x2018,0 x2019,0 x201C,0 x201D,0 x2022,0 x2013,0 x2014, // !
0 x02DC,0 x2122,0 x0161,0 x203A,0 x0153,0 xFFFF,0 x017E,0 x0178, // !
0 xA0, 0 xA1, 0 xA2, 0 xA3, 0 xA4, 0 xA5, 0 xA6, 0 xA7,
0 xA8, 0 xA9, 0 xAA, 0 xAB, 0 xAC, 0 xAD, 0 xAE, 0 xAF,
0 xB0, 0 xB1, 0 xB2, 0 xB3, 0 xB4, 0 xB5, 0 xB6, 0 xB7,
0 xB8, 0 xB9, 0 xBA, 0 xBB, 0 xBC, 0 xBD, 0 xBE, 0 xBF,
0 xC0, 0 xC1, 0 xC2, 0 xC3, 0 xC4, 0 xC5, 0 xC6, 0 xC7,
0 xC8, 0 xC9, 0 xCA, 0 xCB, 0 xCC, 0 xCD, 0 xCE, 0 xCF,
0 xD0, 0 xD1, 0 xD2, 0 xD3, 0 xD4, 0 xD5, 0 xD6, 0 xD7,
0 xD8, 0 xD9, 0 xDA, 0 xDB, 0 xDC, 0 xDD, 0 xDE, 0 xDF,
0 xE0, 0 xE1, 0 xE2, 0 xE3, 0 xE4, 0 xE5, 0 xE6, 0 xE7,
0 xE8, 0 xE9, 0 xEA, 0 xEB, 0 xEC, 0 xED, 0 xEE, 0 xEF,
0 xF0, 0 xF1, 0 xF2, 0 xF3, 0 xF4, 0 xF5, 0 xF6, 0 xF7,
0 xF8, 0 xF9, 0 xFA, 0 xFB, 0 xFC, 0 xFD, 0 xFE, 0 xFF } },
{ RTL_TEXTENCODING_ISO_8859_1,
{ 0 x0000,0 x0001,0 x0002,0 x0003,0 x0004,0 x0005,0 x0006,0 x0007,
0 x0008,0 x0009,0 x000A,0 x000B,0 x000C,0 x000D,0 x000E,0 x000F,
0 x0010,0 x0011,0 x0012,0 x0013,0 x0014,0 x0015,0 x0016,0 x0017,
0 x0018,0 x0019,0 x001A,0 x001B,0 x001C,0 x001D,0 x001E,0 x001F,
0 x0020,0 x0021,0 x0022,0 x0023,0 x0024,0 x0025,0 x0026,0 x0027,
0 x0028,0 x0029,0 x002A,0 x002B,0 x002C,0 x002D,0 x002E,0 x002F,
0 x0030,0 x0031,0 x0032,0 x0033,0 x0034,0 x0035,0 x0036,0 x0037,
0 x0038,0 x0039,0 x003A,0 x003B,0 x003C,0 x003D,0 x003E,0 x003F,
0 x0040,0 x0041,0 x0042,0 x0043,0 x0044,0 x0045,0 x0046,0 x0047,
0 x0048,0 x0049,0 x004A,0 x004B,0 x004C,0 x004D,0 x004E,0 x004F,
0 x0050,0 x0051,0 x0052,0 x0053,0 x0054,0 x0055,0 x0056,0 x0057,
0 x0058,0 x0059,0 x005A,0 x005B,0 x005C,0 x005D,0 x005E,0 x005F,
0 x0060,0 x0061,0 x0062,0 x0063,0 x0064,0 x0065,0 x0066,0 x0067,
0 x0068,0 x0069,0 x006A,0 x006B,0 x006C,0 x006D,0 x006E,0 x006F,
0 x0070,0 x0071,0 x0072,0 x0073,0 x0074,0 x0075,0 x0076,0 x0077,
0 x0078,0 x0079,0 x007A,0 x007B,0 x007C,0 x007D,0 x007E,0 x007F,
0 x0080,0 x0081,0 x0082,0 x0083,0 x0084,0 x0085,0 x0086,0 x0087,
0 x0088,0 x0089,0 x008A,0 x008B,0 x008C,0 x008D,0 x008E,0 x008F,
0 x0090,0 x0091,0 x0092,0 x0093,0 x0094,0 x0095,0 x0096,0 x0097,
0 x0098,0 x0099,0 x009A,0 x009B,0 x009C,0 x009D,0 x009E,0 x009F,
0 x00A0,0 x00A1,0 x00A2,0 x00A3,0 x00A4,0 x00A5,0 x00A6,0 x00A7,
0 x00A8,0 x00A9,0 x00AA,0 x00AB,0 x00AC,0 x00AD,0 x00AE,0 x00AF,
0 x00B0,0 x00B1,0 x00B2,0 x00B3,0 x00B4,0 x00B5,0 x00B6,0 x00B7,
0 x00B8,0 x00B9,0 x00BA,0 x00BB,0 x00BC,0 x00BD,0 x00BE,0 x00BF,
0 x00C0,0 x00C1,0 x00C2,0 x00C3,0 x00C4,0 x00C5,0 x00C6,0 x00C7,
0 x00C8,0 x00C9,0 x00CA,0 x00CB,0 x00CC,0 x00CD,0 x00CE,0 x00CF,
0 x00D0,0 x00D1,0 x00D2,0 x00D3,0 x00D4,0 x00D5,0 x00D6,0 x00D7,
0 x00D8,0 x00D9,0 x00DA,0 x00DB,0 x00DC,0 x00DD,0 x00DE,0 x00DF,
0 x00E0,0 x00E1,0 x00E2,0 x00E3,0 x00E4,0 x00E5,0 x00E6,0 x00E7,
0 x00E8,0 x00E9,0 x00EA,0 x00EB,0 x00EC,0 x00ED,0 x00EE,0 x00EF,
0 x00F0,0 x00F1,0 x00F2,0 x00F3,0 x00F4,0 x00F5,0 x00F6,0 x00F7,
0 x00F8,0 x00F9,0 x00FA,0 x00FB,0 x00FC,0 x00FD,0 x00FE,0 x00FF } },
{ RTL_TEXTENCODING_ISO_8859_2,
{ 0 x0000,0 x0001,0 x0002,0 x0003,0 x0004,0 x0005,0 x0006,0 x0007,
0 x0008,0 x0009,0 x000A,0 x000B,0 x000C,0 x000D,0 x000E,0 x000F,
0 x0010,0 x0011,0 x0012,0 x0013,0 x0014,0 x0015,0 x0016,0 x0017,
0 x0018,0 x0019,0 x001A,0 x001B,0 x001C,0 x001D,0 x001E,0 x001F,
0 x0020,0 x0021,0 x0022,0 x0023,0 x0024,0 x0025,0 x0026,0 x0027,
0 x0028,0 x0029,0 x002A,0 x002B,0 x002C,0 x002D,0 x002E,0 x002F,
0 x0030,0 x0031,0 x0032,0 x0033,0 x0034,0 x0035,0 x0036,0 x0037,
0 x0038,0 x0039,0 x003A,0 x003B,0 x003C,0 x003D,0 x003E,0 x003F,
0 x0040,0 x0041,0 x0042,0 x0043,0 x0044,0 x0045,0 x0046,0 x0047,
0 x0048,0 x0049,0 x004A,0 x004B,0 x004C,0 x004D,0 x004E,0 x004F,
0 x0050,0 x0051,0 x0052,0 x0053,0 x0054,0 x0055,0 x0056,0 x0057,
0 x0058,0 x0059,0 x005A,0 x005B,0 x005C,0 x005D,0 x005E,0 x005F,
0 x0060,0 x0061,0 x0062,0 x0063,0 x0064,0 x0065,0 x0066,0 x0067,
0 x0068,0 x0069,0 x006A,0 x006B,0 x006C,0 x006D,0 x006E,0 x006F,
0 x0070,0 x0071,0 x0072,0 x0073,0 x0074,0 x0075,0 x0076,0 x0077,
0 x0078,0 x0079,0 x007A,0 x007B,0 x007C,0 x007D,0 x007E,0 x007F,
0 x0080,0 x0081,0 x0082,0 x0083,0 x0084,0 x0085,0 x0086,0 x0087,
0 x0088,0 x0089,0 x008A,0 x008B,0 x008C,0 x008D,0 x008E,0 x008F,
0 x0090,0 x0091,0 x0092,0 x0093,0 x0094,0 x0095,0 x0096,0 x0097,
0 x0098,0 x0099,0 x009A,0 x009B,0 x009C,0 x009D,0 x009E,0 x009F,
0 x00A0,0 x0104,0 x02D8,0 x0141,0 x00A4,0 x013D,0 x015A,0 x00A7,
0 x00A8,0 x0160,0 x015E,0 x0164,0 x0179,0 x00AD,0 x017D,0 x017B,
0 x00B0,0 x0105,0 x02DB,0 x0142,0 x00B4,0 x013E,0 x015B,0 x02C7,
0 x00B8,0 x0161,0 x015F,0 x0165,0 x017A,0 x02DD,0 x017E,0 x017C,
0 x0154,0 x00C1,0 x00C2,0 x0102,0 x00C4,0 x0139,0 x0106,0 x00C7,
0 x010C,0 x00C9,0 x0118,0 x00CB,0 x011A,0 x00CD,0 x00CE,0 x010E,
0 x0110,0 x0143,0 x0147,0 x00D3,0 x00D4,0 x0150,0 x00D6,0 x00D7,
0 x0158,0 x016E,0 x00DA,0 x0170,0 x00DC,0 x00DD,0 x0162,0 x00DF,
0 x0155,0 x00E1,0 x00E2,0 x0103,0 x00E4,0 x013A,0 x0107,0 x00E7,
0 x010D,0 x00E9,0 x0119,0 x00EB,0 x011B,0 x00ED,0 x00EE,0 x010F,
0 x0111,0 x0144,0 x0148,0 x00F3,0 x00F4,0 x0151,0 x00F6,0 x00F7,
0 x0159,0 x016F,0 x00FA,0 x0171,0 x00FC,0 x00FD,0 x0163,0 x02D9 } },
{ RTL_TEXTENCODING_ISO_8859_3,
{ 0 x0000,0 x0001,0 x0002,0 x0003,0 x0004,0 x0005,0 x0006,0 x0007,
0 x0008,0 x0009,0 x000A,0 x000B,0 x000C,0 x000D,0 x000E,0 x000F,
0 x0010,0 x0011,0 x0012,0 x0013,0 x0014,0 x0015,0 x0016,0 x0017,
0 x0018,0 x0019,0 x001A,0 x001B,0 x001C,0 x001D,0 x001E,0 x001F,
0 x0020,0 x0021,0 x0022,0 x0023,0 x0024,0 x0025,0 x0026,0 x0027,
0 x0028,0 x0029,0 x002A,0 x002B,0 x002C,0 x002D,0 x002E,0 x002F,
0 x0030,0 x0031,0 x0032,0 x0033,0 x0034,0 x0035,0 x0036,0 x0037,
0 x0038,0 x0039,0 x003A,0 x003B,0 x003C,0 x003D,0 x003E,0 x003F,
0 x0040,0 x0041,0 x0042,0 x0043,0 x0044,0 x0045,0 x0046,0 x0047,
0 x0048,0 x0049,0 x004A,0 x004B,0 x004C,0 x004D,0 x004E,0 x004F,
0 x0050,0 x0051,0 x0052,0 x0053,0 x0054,0 x0055,0 x0056,0 x0057,
0 x0058,0 x0059,0 x005A,0 x005B,0 x005C,0 x005D,0 x005E,0 x005F,
0 x0060,0 x0061,0 x0062,0 x0063,0 x0064,0 x0065,0 x0066,0 x0067,
0 x0068,0 x0069,0 x006A,0 x006B,0 x006C,0 x006D,0 x006E,0 x006F,
0 x0070,0 x0071,0 x0072,0 x0073,0 x0074,0 x0075,0 x0076,0 x0077,
0 x0078,0 x0079,0 x007A,0 x007B,0 x007C,0 x007D,0 x007E,0 x007F,
0 x0080,0 x0081,0 x0082,0 x0083,0 x0084,0 x0085,0 x0086,0 x0087,
0 x0088,0 x0089,0 x008A,0 x008B,0 x008C,0 x008D,0 x008E,0 x008F,
0 x0090,0 x0091,0 x0092,0 x0093,0 x0094,0 x0095,0 x0096,0 x0097,
0 x0098,0 x0099,0 x009A,0 x009B,0 x009C,0 x009D,0 x009E,0 x009F,
0 x00A0,0 x0126,0 x02D8,0 x00A3,0 x00A4,0 xFFFF,0 x0124,0 x00A7,
0 x00A8,0 x0130,0 x015E,0 x011E,0 x0134,0 x00AD,0 xFFFF,0 x017B,
0 x00B0,0 x0127,0 x00B2,0 x00B3,0 x00B4,0 x00B5,0 x0125,0 x00B7,
0 x00B8,0 x0131,0 x015F,0 x011F,0 x0135,0 x00BD,0 xFFFF,0 x017C,
0 x00C0,0 x00C1,0 x00C2,0 xFFFF,0 x00C4,0 x010A,0 x0108,0 x00C7,
0 x00C8,0 x00C9,0 x00CA,0 x00CB,0 x00CC,0 x00CD,0 x00CE,0 x00CF,
0 xFFFF,0 x00D1,0 x00D2,0 x00D3,0 x00D4,0 x0120,0 x00D6,0 x00D7,
0 x011C,0 x00D9,0 x00DA,0 x00DB,0 x00DC,0 x016C,0 x015C,0 x00DF,
0 x00E0,0 x00E1,0 x00E2,0 xFFFF,0 x00E4,0 x010B,0 x0109,0 x00E7,
0 x00E8,0 x00E9,0 x00EA,0 x00EB,0 x00EC,0 x00ED,0 x00EE,0 x00EF,
0 xFFFF,0 x00F1,0 x00F2,0 x00F3,0 x00F4,0 x0121,0 x00F6,0 x00F7,
0 x011D,0 x00F9,0 x00FA,0 x00FB,0 x00FC,0 x016D,0 x015D,0 x02D9 } },
{ RTL_TEXTENCODING_ISO_8859_6,
{ 0 x0000,0 x0001,0 x0002,0 x0003,0 x0004,0 x0005,0 x0006,0 x0007,
0 x0008,0 x0009,0 x000A,0 x000B,0 x000C,0 x000D,0 x000E,0 x000F,
0 x0010,0 x0011,0 x0012,0 x0013,0 x0014,0 x0015,0 x0016,0 x0017,
0 x0018,0 x0019,0 x001A,0 x001B,0 x001C,0 x001D,0 x001E,0 x001F,
0 x0020,0 x0021,0 x0022,0 x0023,0 x0024,0 x0025,0 x0026,0 x0027,
0 x0028,0 x0029,0 x002A,0 x002B,0 x002C,0 x002D,0 x002E,0 x002F,
0 x0030,0 x0031,0 x0032,0 x0033,0 x0034,0 x0035,0 x0036,0 x0037,
0 x0038,0 x0039,0 x003A,0 x003B,0 x003C,0 x003D,0 x003E,0 x003F,
0 x0040,0 x0041,0 x0042,0 x0043,0 x0044,0 x0045,0 x0046,0 x0047,
0 x0048,0 x0049,0 x004A,0 x004B,0 x004C,0 x004D,0 x004E,0 x004F,
0 x0050,0 x0051,0 x0052,0 x0053,0 x0054,0 x0055,0 x0056,0 x0057,
0 x0058,0 x0059,0 x005A,0 x005B,0 x005C,0 x005D,0 x005E,0 x005F,
0 x0060,0 x0061,0 x0062,0 x0063,0 x0064,0 x0065,0 x0066,0 x0067,
0 x0068,0 x0069,0 x006A,0 x006B,0 x006C,0 x006D,0 x006E,0 x006F,
0 x0070,0 x0071,0 x0072,0 x0073,0 x0074,0 x0075,0 x0076,0 x0077,
0 x0078,0 x0079,0 x007A,0 x007B,0 x007C,0 x007D,0 x007E,0 x007F,
0 x0080,0 x0081,0 x0082,0 x0083,0 x0084,0 x0085,0 x0086,0 x0087,
0 x0088,0 x0089,0 x008A,0 x008B,0 x008C,0 x008D,0 x008E,0 x008F,
0 x0090,0 x0091,0 x0092,0 x0093,0 x0094,0 x0095,0 x0096,0 x0097,
0 x0098,0 x0099,0 x009A,0 x009B,0 x009C,0 x009D,0 x009E,0 x009F,
0 x00A0,0 xFFFF,0 xFFFF,0 xFFFF,0 x00A4,0 xFFFF,0 xFFFF,0 xFFFF,
0 xFFFF,0 xFFFF,0 xFFFF,0 xFFFF,0 x060C,0 x00AD,0 xFFFF,0 xFFFF,
0 xFFFF,0 xFFFF,0 xFFFF,0 xFFFF,0 xFFFF,0 xFFFF,0 xFFFF,0 xFFFF,
0 xFFFF,0 xFFFF,0 xFFFF,0 x061B,0 xFFFF,0 xFFFF,0 xFFFF,0 x061F,
0 xFFFF,0 x0621,0 x0622,0 x0623,0 x0624,0 x0625,0 x0626,0 x0627,
0 x0628,0 x0629,0 x062A,0 x062B,0 x062C,0 x062D,0 x062E,0 x062F,
0 x0630,0 x0631,0 x0632,0 x0633,0 x0634,0 x0635,0 x0636,0 x0637,
0 x0638,0 x0639,0 x063A,0 xFFFF,0 xFFFF,0 xFFFF,0 xFFFF,0 xFFFF,
0 x0640,0 x0641,0 x0642,0 x0643,0 x0644,0 x0645,0 x0646,0 x0647,
0 x0648,0 x0649,0 x064A,0 x064B,0 x064C,0 x064D,0 x064E,0 x064F,
0 x0650,0 x0651,0 x0652,0 xFFFF,0 xFFFF,0 xFFFF,0 xFFFF,0 xFFFF,
0 xFFFF,0 xFFFF,0 xFFFF,0 xFFFF,0 xFFFF,0 xFFFF,0 xFFFF,0 xFFFF } },
{ RTL_TEXTENCODING_ISO_8859_8,
{ 0 x0000,0 x0001,0 x0002,0 x0003,0 x0004,0 x0005,0 x0006,0 x0007,
0 x0008,0 x0009,0 x000A,0 x000B,0 x000C,0 x000D,0 x000E,0 x000F,
0 x0010,0 x0011,0 x0012,0 x0013,0 x0014,0 x0015,0 x0016,0 x0017,
0 x0018,0 x0019,0 x001A,0 x001B,0 x001C,0 x001D,0 x001E,0 x001F,
0 x0020,0 x0021,0 x0022,0 x0023,0 x0024,0 x0025,0 x0026,0 x0027,
0 x0028,0 x0029,0 x002A,0 x002B,0 x002C,0 x002D,0 x002E,0 x002F,
0 x0030,0 x0031,0 x0032,0 x0033,0 x0034,0 x0035,0 x0036,0 x0037,
0 x0038,0 x0039,0 x003A,0 x003B,0 x003C,0 x003D,0 x003E,0 x003F,
0 x0040,0 x0041,0 x0042,0 x0043,0 x0044,0 x0045,0 x0046,0 x0047,
0 x0048,0 x0049,0 x004A,0 x004B,0 x004C,0 x004D,0 x004E,0 x004F,
0 x0050,0 x0051,0 x0052,0 x0053,0 x0054,0 x0055,0 x0056,0 x0057,
0 x0058,0 x0059,0 x005A,0 x005B,0 x005C,0 x005D,0 x005E,0 x005F,
0 x0060,0 x0061,0 x0062,0 x0063,0 x0064,0 x0065,0 x0066,0 x0067,
0 x0068,0 x0069,0 x006A,0 x006B,0 x006C,0 x006D,0 x006E,0 x006F,
0 x0070,0 x0071,0 x0072,0 x0073,0 x0074,0 x0075,0 x0076,0 x0077,
0 x0078,0 x0079,0 x007A,0 x007B,0 x007C,0 x007D,0 x007E,0 x007F,
0 x0080,0 x0081,0 x0082,0 x0083,0 x0084,0 x0085,0 x0086,0 x0087,
0 x0088,0 x0089,0 x008A,0 x008B,0 x008C,0 x008D,0 x008E,0 x008F,
0 x0090,0 x0091,0 x0092,0 x0093,0 x0094,0 x0095,0 x0096,0 x0097,
0 x0098,0 x0099,0 x009A,0 x009B,0 x009C,0 x009D,0 x009E,0 x009F,
0 x00A0,0 xFFFF,0 x00A2,0 x00A3,0 x00A4,0 x00A5,0 x00A6,0 x00A7,
0 x00A8,0 x00A9,0 x00D7,0 x00AB,0 x00AC,0 x00AD,0 x00AE,0 x00AF,
0 x00B0,0 x00B1,0 x00B2,0 x00B3,0 x00B4,0 x00B5,0 x00B6,0 x00B7,
0 x00B8,0 x00B9,0 x00F7,0 x00BB,0 x00BC,0 x00BD,0 x00BE,0 xFFFF,
0 xFFFF,0 xFFFF,0 xFFFF,0 xFFFF,0 xFFFF,0 xFFFF,0 xFFFF,0 xFFFF,
0 xFFFF,0 xFFFF,0 xFFFF,0 xFFFF,0 xFFFF,0 xFFFF,0 xFFFF,0 xFFFF,
0 xFFFF,0 xFFFF,0 xFFFF,0 xFFFF,0 xFFFF,0 xFFFF,0 xFFFF,0 xFFFF,
0 xFFFF,0 xFFFF,0 xFFFF,0 xFFFF,0 xFFFF,0 xFFFF,0 xFFFF,0 x2017,
0 x05D0,0 x05D1,0 x05D2,0 x05D3,0 x05D4,0 x05D5,0 x05D6,0 x05D7,
0 x05D8,0 x05D9,0 x05DA,0 x05DB,0 x05DC,0 x05DD,0 x05DE,0 x05DF,
0 x05E0,0 x05E1,0 x05E2,0 x05E3,0 x05E4,0 x05E5,0 x05E6,0 x05E7,
0 x05E8,0 x05E9,0 x05EA,0 xFFFF,0 xFFFF,0 x200E,0 x200F,0 xFFFF } },
{ RTL_TEXTENCODING_TIS_620,
{ 0 x0000,0 x0001,0 x0002,0 x0003,0 x0004,0 x0005,0 x0006,0 x0007,
0 x0008,0 x0009,0 x000A,0 x000B,0 x000C,0 x000D,0 x000E,0 x000F,
0 x0010,0 x0011,0 x0012,0 x0013,0 x0014,0 x0015,0 x0016,0 x0017,
0 x0018,0 x0019,0 x001A,0 x001B,0 x001C,0 x001D,0 x001E,0 x001F,
0 x0020,0 x0021,0 x0022,0 x0023,0 x0024,0 x0025,0 x0026,0 x0027,
0 x0028,0 x0029,0 x002A,0 x002B,0 x002C,0 x002D,0 x002E,0 x002F,
0 x0030,0 x0031,0 x0032,0 x0033,0 x0034,0 x0035,0 x0036,0 x0037,
0 x0038,0 x0039,0 x003A,0 x003B,0 x003C,0 x003D,0 x003E,0 x003F,
0 x0040,0 x0041,0 x0042,0 x0043,0 x0044,0 x0045,0 x0046,0 x0047,
0 x0048,0 x0049,0 x004A,0 x004B,0 x004C,0 x004D,0 x004E,0 x004F,
0 x0050,0 x0051,0 x0052,0 x0053,0 x0054,0 x0055,0 x0056,0 x0057,
0 x0058,0 x0059,0 x005A,0 x005B,0 x005C,0 x005D,0 x005E,0 x005F,
0 x0060,0 x0061,0 x0062,0 x0063,0 x0064,0 x0065,0 x0066,0 x0067,
0 x0068,0 x0069,0 x006A,0 x006B,0 x006C,0 x006D,0 x006E,0 x006F,
0 x0070,0 x0071,0 x0072,0 x0073,0 x0074,0 x0075,0 x0076,0 x0077,
0 x0078,0 x0079,0 x007A,0 x007B,0 x007C,0 x007D,0 x007E,0 x007F,
0 x0080,0 x0081,0 x0082,0 x0083,0 x0084,0 x0085,0 x0086,0 x0087,
0 x0088,0 x0089,0 x008A,0 x008B,0 x008C,0 x008D,0 x008E,0 x008F,
0 x0090,0 x0091,0 x0092,0 x0093,0 x0094,0 x0095,0 x0096,0 x0097,
0 x0098,0 x0099,0 x009A,0 x009B,0 x009C,0 x009D,0 x009E,0 x009F,
0 x00A0,0 x0E01,0 x0E02,0 x0E03,0 x0E04,0 x0E05,0 x0E06,0 x0E07, // !
0 x0E08,0 x0E09,0 x0E0A,0 x0E0B,0 x0E0C,0 x0E0D,0 x0E0E,0 x0E0F,
0 x0E10,0 x0E11,0 x0E12,0 x0E13,0 x0E14,0 x0E15,0 x0E16,0 x0E17,
0 x0E18,0 x0E19,0 x0E1A,0 x0E1B,0 x0E1C,0 x0E1D,0 x0E1E,0 x0E1F,
0 x0E20,0 x0E21,0 x0E22,0 x0E23,0 x0E24,0 x0E25,0 x0E26,0 x0E27,
0 x0E28,0 x0E29,0 x0E2A,0 x0E2B,0 x0E2C,0 x0E2D,0 x0E2E,0 x0E2F,
0 x0E30,0 x0E31,0 x0E32,0 x0E33,0 x0E34,0 x0E35,0 x0E36,0 x0E37,
0 x0E38,0 x0E39,0 x0E3A,0 xFFFF,0 xFFFF,0 xFFFF,0 xFFFF,0 x0E3F,
0 x0E40,0 x0E41,0 x0E42,0 x0E43,0 x0E44,0 x0E45,0 x0E46,0 x0E47,
0 x0E48,0 x0E49,0 x0E4A,0 x0E4B,0 x0E4C,0 x0E4D,0 x0E4E,0 x0E4F,
0 x0E50,0 x0E51,0 x0E52,0 x0E53,0 x0E54,0 x0E55,0 x0E56,0 x0E57,
0 x0E58,0 x0E59,0 x0E5A,0 x0E5B,0 xFFFF,0 xFFFF,0 xFFFF,0 xFFFF } },
{ RTL_TEXTENCODING_MS_874,
{ 0 x0000,0 x0001,0 x0002,0 x0003,0 x0004,0 x0005,0 x0006,0 x0007,
0 x0008,0 x0009,0 x000A,0 x000B,0 x000C,0 x000D,0 x000E,0 x000F,
0 x0010,0 x0011,0 x0012,0 x0013,0 x0014,0 x0015,0 x0016,0 x0017,
0 x0018,0 x0019,0 x001A,0 x001B,0 x001C,0 x001D,0 x001E,0 x001F,
0 x0020,0 x0021,0 x0022,0 x0023,0 x0024,0 x0025,0 x0026,0 x0027,
0 x0028,0 x0029,0 x002A,0 x002B,0 x002C,0 x002D,0 x002E,0 x002F,
0 x0030,0 x0031,0 x0032,0 x0033,0 x0034,0 x0035,0 x0036,0 x0037,
0 x0038,0 x0039,0 x003A,0 x003B,0 x003C,0 x003D,0 x003E,0 x003F,
0 x0040,0 x0041,0 x0042,0 x0043,0 x0044,0 x0045,0 x0046,0 x0047,
0 x0048,0 x0049,0 x004A,0 x004B,0 x004C,0 x004D,0 x004E,0 x004F,
0 x0050,0 x0051,0 x0052,0 x0053,0 x0054,0 x0055,0 x0056,0 x0057,
0 x0058,0 x0059,0 x005A,0 x005B,0 x005C,0 x005D,0 x005E,0 x005F,
0 x0060,0 x0061,0 x0062,0 x0063,0 x0064,0 x0065,0 x0066,0 x0067,
0 x0068,0 x0069,0 x006A,0 x006B,0 x006C,0 x006D,0 x006E,0 x006F,
0 x0070,0 x0071,0 x0072,0 x0073,0 x0074,0 x0075,0 x0076,0 x0077,
0 x0078,0 x0079,0 x007A,0 x007B,0 x007C,0 x007D,0 x007E,0 x007F,
0 x20AC,0 xFFFF,0 xFFFF,0 xFFFF,0 xFFFF,0 x2026,0 xFFFF,0 xFFFF,
0 xFFFF,0 xFFFF,0 xFFFF,0 xFFFF,0 xFFFF,0 xFFFF,0 xFFFF,0 xFFFF,
0 xFFFF,0 x2018,0 x2019,0 x201C,0 x201D,0 x2022,0 x2013,0 x2014,
0 xFFFF,0 xFFFF,0 xFFFF,0 xFFFF,0 xFFFF,0 xFFFF,0 xFFFF,0 xFFFF,
0 x00A0,0 x0E01,0 x0E02,0 x0E03,0 x0E04,0 x0E05,0 x0E06,0 x0E07,
0 x0E08,0 x0E09,0 x0E0A,0 x0E0B,0 x0E0C,0 x0E0D,0 x0E0E,0 x0E0F,
0 x0E10,0 x0E11,0 x0E12,0 x0E13,0 x0E14,0 x0E15,0 x0E16,0 x0E17,
0 x0E18,0 x0E19,0 x0E1A,0 x0E1B,0 x0E1C,0 x0E1D,0 x0E1E,0 x0E1F,
0 x0E20,0 x0E21,0 x0E22,0 x0E23,0 x0E24,0 x0E25,0 x0E26,0 x0E27,
0 x0E28,0 x0E29,0 x0E2A,0 x0E2B,0 x0E2C,0 x0E2D,0 x0E2E,0 x0E2F,
0 x0E30,0 x0E31,0 x0E32,0 x0E33,0 x0E34,0 x0E35,0 x0E36,0 x0E37,
0 x0E38,0 x0E39,0 x0E3A,0 xFFFF,0 xFFFF,0 xFFFF,0 xFFFF,0 x0E3F,
0 x0E40,0 x0E41,0 x0E42,0 x0E43,0 x0E44,0 x0E45,0 x0E46,0 x0E47,
0 x0E48,0 x0E49,0 x0E4A,0 x0E4B,0 x0E4C,0 x0E4D,0 x0E4E,0 x0E4F,
0 x0E50,0 x0E51,0 x0E52,0 x0E53,0 x0E54,0 x0E55,0 x0E56,0 x0E57,
0 x0E58,0 x0E59,0 x0E5A,0 x0E5B,0 xFFFF,0 xFFFF,0 xFFFF,0 xFFFF } },
{ RTL_TEXTENCODING_MS_1255,
{ 0 x0000,0 x0001,0 x0002,0 x0003,0 x0004,0 x0005,0 x0006,0 x0007,
0 x0008,0 x0009,0 x000A,0 x000B,0 x000C,0 x000D,0 x000E,0 x000F,
0 x0010,0 x0011,0 x0012,0 x0013,0 x0014,0 x0015,0 x0016,0 x0017,
0 x0018,0 x0019,0 x001A,0 x001B,0 x001C,0 x001D,0 x001E,0 x001F,
0 x0020,0 x0021,0 x0022,0 x0023,0 x0024,0 x0025,0 x0026,0 x0027,
0 x0028,0 x0029,0 x002A,0 x002B,0 x002C,0 x002D,0 x002E,0 x002F,
0 x0030,0 x0031,0 x0032,0 x0033,0 x0034,0 x0035,0 x0036,0 x0037,
0 x0038,0 x0039,0 x003A,0 x003B,0 x003C,0 x003D,0 x003E,0 x003F,
0 x0040,0 x0041,0 x0042,0 x0043,0 x0044,0 x0045,0 x0046,0 x0047,
0 x0048,0 x0049,0 x004A,0 x004B,0 x004C,0 x004D,0 x004E,0 x004F,
0 x0050,0 x0051,0 x0052,0 x0053,0 x0054,0 x0055,0 x0056,0 x0057,
0 x0058,0 x0059,0 x005A,0 x005B,0 x005C,0 x005D,0 x005E,0 x005F,
0 x0060,0 x0061,0 x0062,0 x0063,0 x0064,0 x0065,0 x0066,0 x0067,
0 x0068,0 x0069,0 x006A,0 x006B,0 x006C,0 x006D,0 x006E,0 x006F,
0 x0070,0 x0071,0 x0072,0 x0073,0 x0074,0 x0075,0 x0076,0 x0077,
0 x0078,0 x0079,0 x007A,0 x007B,0 x007C,0 x007D,0 x007E,0 x007F,
0 x20AC,0 xFFFF,0 x201A,0 x0192,0 x201E,0 x2026,0 x2020,0 x2021,
0 x02C6,0 x2030,0 xFFFF,0 x2039,0 xFFFF,0 xFFFF,0 xFFFF,0 xFFFF,
0 xFFFF,0 x2018,0 x2019,0 x201C,0 x201D,0 x2022,0 x2013,0 x2014,
0 x02DC,0 x2122,0 xFFFF,0 x203A,0 xFFFF,0 xFFFF,0 xFFFF,0 xFFFF,
0 x00A0,0 x00A1,0 x00A2,0 x00A3,0 x20AA,0 x00A5,0 x00A6,0 x00A7,
0 x00A8,0 x00A9,0 x00D7,0 x00AB,0 x00AC,0 x00AD,0 x00AE,0 x00AF,
0 x00B0,0 x00B1,0 x00B2,0 x00B3,0 x00B4,0 x00B5,0 x00B6,0 x00B7,
0 x00B8,0 x00B9,0 x00F7,0 x00BB,0 x00BC,0 x00BD,0 x00BE,0 x00BF,
0 x05B0,0 x05B1,0 x05B2,0 x05B3,0 x05B4,0 x05B5,0 x05B6,0 x05B7,
0 x05B8,0 x05B9,0 xFFFF,0 x05BB,0 x05BC,0 x05BD,0 x05BE,0 x05BF,
0 x05C0,0 x05C1,0 x05C2,0 x05C3,0 x05F0,0 x05F1,0 x05F2,0 x05F3,
0 x05F4,0 xFFFF,0 xFFFF,0 xFFFF,0 xFFFF,0 xFFFF,0 xFFFF,0 xFFFF,
0 x05D0,0 x05D1,0 x05D2,0 x05D3,0 x05D4,0 x05D5,0 x05D6,0 x05D7,
0 x05D8,0 x05D9,0 x05DA,0 x05DB,0 x05DC,0 x05DD,0 x05DE,0 x05DF,
0 x05E0,0 x05E1,0 x05E2,0 x05E3,0 x05E4,0 x05E5,0 x05E6,0 x05E7,
0 x05E8,0 x05E9,0 x05EA,0 xFFFF,0 xFFFF,0 x200E,0 x200F,0 xFFFF } },
{ RTL_TEXTENCODING_MS_1256,
{ 0 x0000,0 x0001,0 x0002,0 x0003,0 x0004,0 x0005,0 x0006,0 x0007,
0 x0008,0 x0009,0 x000A,0 x000B,0 x000C,0 x000D,0 x000E,0 x000F,
0 x0010,0 x0011,0 x0012,0 x0013,0 x0014,0 x0015,0 x0016,0 x0017,
0 x0018,0 x0019,0 x001A,0 x001B,0 x001C,0 x001D,0 x001E,0 x001F,
0 x0020,0 x0021,0 x0022,0 x0023,0 x0024,0 x0025,0 x0026,0 x0027,
0 x0028,0 x0029,0 x002A,0 x002B,0 x002C,0 x002D,0 x002E,0 x002F,
0 x0030,0 x0031,0 x0032,0 x0033,0 x0034,0 x0035,0 x0036,0 x0037,
0 x0038,0 x0039,0 x003A,0 x003B,0 x003C,0 x003D,0 x003E,0 x003F,
0 x0040,0 x0041,0 x0042,0 x0043,0 x0044,0 x0045,0 x0046,0 x0047,
0 x0048,0 x0049,0 x004A,0 x004B,0 x004C,0 x004D,0 x004E,0 x004F,
0 x0050,0 x0051,0 x0052,0 x0053,0 x0054,0 x0055,0 x0056,0 x0057,
0 x0058,0 x0059,0 x005A,0 x005B,0 x005C,0 x005D,0 x005E,0 x005F,
0 x0060,0 x0061,0 x0062,0 x0063,0 x0064,0 x0065,0 x0066,0 x0067,
0 x0068,0 x0069,0 x006A,0 x006B,0 x006C,0 x006D,0 x006E,0 x006F,
0 x0070,0 x0071,0 x0072,0 x0073,0 x0074,0 x0075,0 x0076,0 x0077,
0 x0078,0 x0079,0 x007A,0 x007B,0 x007C,0 x007D,0 x007E,0 x007F,
0 x20AC,0 x067E,0 x201A,0 x0192,0 x201E,0 x2026,0 x2020,0 x2021,
0 x02C6,0 x2030,0 x0679,0 x2039,0 x0152,0 x0686,0 x0698,0 x0688,
0 x06AF,0 x2018,0 x2019,0 x201C,0 x201D,0 x2022,0 x2013,0 x2014,
0 x06A9,0 x2122,0 x0691,0 x203A,0 x0153,0 x200C,0 x200D,0 x06BA,
0 x00A0,0 x060C,0 x00A2,0 x00A3,0 x00A4,0 x00A5,0 x00A6,0 x00A7,
0 x00A8,0 x00A9,0 x06BE,0 x00AB,0 x00AC,0 x00AD,0 x00AE,0 x00AF,
0 x00B0,0 x00B1,0 x00B2,0 x00B3,0 x00B4,0 x00B5,0 x00B6,0 x00B7,
0 x00B8,0 x00B9,0 x061B,0 x00BB,0 x00BC,0 x00BD,0 x00BE,0 x061F,
0 x06C1,0 x0621,0 x0622,0 x0623,0 x0624,0 x0625,0 x0626,0 x0627,
0 x0628,0 x0629,0 x062A,0 x062B,0 x062C,0 x062D,0 x062E,0 x062F,
0 x0630,0 x0631,0 x0632,0 x0633,0 x0634,0 x0635,0 x0636,0 x00D7,
0 x0637,0 x0638,0 x0639,0 x063A,0 x0640,0 x0641,0 x0642,0 x0643,
0 x00E0,0 x0644,0 x00E2,0 x0645,0 x0646,0 x0647,0 x0648,0 x00E7,
0 x00E8,0 x00E9,0 x00EA,0 x00EB,0 x0649,0 x064A,0 x00EE,0 x00EF,
0 x064B,0 x064C,0 x064D,0 x064E,0 x00F4,0 x064F,0 x0650,0 x00F7,
0 x0651,0 x00F9,0 x0652,0 x00FB,0 x00FC,0 x200E,0 x200F,0 x06D2 } },
{ RTL_TEXTENCODING_MS_1257,
{ 0 x0000,0 x0001,0 x0002,0 x0003,0 x0004,0 x0005,0 x0006,0 x0007,
0 x0008,0 x0009,0 x000A,0 x000B,0 x000C,0 x000D,0 x000E,0 x000F,
0 x0010,0 x0011,0 x0012,0 x0013,0 x0014,0 x0015,0 x0016,0 x0017,
0 x0018,0 x0019,0 x001A,0 x001B,0 x001C,0 x001D,0 x001E,0 x001F,
0 x0020,0 x0021,0 x0022,0 x0023,0 x0024,0 x0025,0 x0026,0 x0027,
0 x0028,0 x0029,0 x002A,0 x002B,0 x002C,0 x002D,0 x002E,0 x002F,
0 x0030,0 x0031,0 x0032,0 x0033,0 x0034,0 x0035,0 x0036,0 x0037,
0 x0038,0 x0039,0 x003A,0 x003B,0 x003C,0 x003D,0 x003E,0 x003F,
0 x0040,0 x0041,0 x0042,0 x0043,0 x0044,0 x0045,0 x0046,0 x0047,
0 x0048,0 x0049,0 x004A,0 x004B,0 x004C,0 x004D,0 x004E,0 x004F,
0 x0050,0 x0051,0 x0052,0 x0053,0 x0054,0 x0055,0 x0056,0 x0057,
0 x0058,0 x0059,0 x005A,0 x005B,0 x005C,0 x005D,0 x005E,0 x005F,
0 x0060,0 x0061,0 x0062,0 x0063,0 x0064,0 x0065,0 x0066,0 x0067,
0 x0068,0 x0069,0 x006A,0 x006B,0 x006C,0 x006D,0 x006E,0 x006F,
0 x0070,0 x0071,0 x0072,0 x0073,0 x0074,0 x0075,0 x0076,0 x0077,
0 x0078,0 x0079,0 x007A,0 x007B,0 x007C,0 x007D,0 x007E,0 x007F,
0 x20AC,0 xFFFF,0 x201A,0 xFFFF,0 x201E,0 x2026,0 x2020,0 x2021,
0 xFFFF,0 x2030,0 xFFFF,0 x2039,0 xFFFF,0 x00A8,0 x02C7,0 x00B8,
0 xFFFF,0 x2018,0 x2019,0 x201C,0 x201D,0 x2022,0 x2013,0 x2014,
0 xFFFF,0 x2122,0 xFFFF,0 x203A,0 xFFFF,0 x00AF,0 x02DB,0 xFFFF,
0 x00A0,0 xFFFF,0 x00A2,0 x00A3,0 x00A4,0 xFFFF,0 x00A6,0 x00A7,
0 x00D8,0 x00A9,0 x0156,0 x00AB,0 x00AC,0 x00AD,0 x00AE,0 x00C6,
0 x00B0,0 x00B1,0 x00B2,0 x00B3,0 x00B4,0 x00B5,0 x00B6,0 x00B7,
0 x00F8,0 x00B9,0 x0157,0 x00BB,0 x00BC,0 x00BD,0 x00BE,0 x00E6,
0 x0104,0 x012E,0 x0100,0 x0106,0 x00C4,0 x00C5,0 x0118,0 x0112,
0 x010C,0 x00C9,0 x0179,0 x0116,0 x0122,0 x0136,0 x012A,0 x013B,
0 x0160,0 x0143,0 x0145,0 x00D3,0 x014C,0 x00D5,0 x00D6,0 x00D7,
0 x0172,0 x0141,0 x015A,0 x016A,0 x00DC,0 x017B,0 x017D,0 x00DF,
0 x0105,0 x012F,0 x0101,0 x0107,0 x00E4,0 x00E5,0 x0119,0 x0113,
0 x010D,0 x00E9,0 x017A,0 x0117,0 x0123,0 x0137,0 x012B,0 x013C,
0 x0161,0 x0144,0 x0146,0 x00F3,0 x014D,0 x00F5,0 x00F6,0 x00F7,
0 x0173,0 x0142,0 x015B,0 x016B,0 x00FC,0 x017C,0 x017E,0 x02D9 } },
{ RTL_TEXTENCODING_MS_1258,
{ 0 x0000,0 x0001,0 x0002,0 x0003,0 x0004,0 x0005,0 x0006,0 x0007,
0 x0008,0 x0009,0 x000A,0 x000B,0 x000C,0 x000D,0 x000E,0 x000F,
0 x0010,0 x0011,0 x0012,0 x0013,0 x0014,0 x0015,0 x0016,0 x0017,
0 x0018,0 x0019,0 x001A,0 x001B,0 x001C,0 x001D,0 x001E,0 x001F,
0 x0020,0 x0021,0 x0022,0 x0023,0 x0024,0 x0025,0 x0026,0 x0027,
0 x0028,0 x0029,0 x002A,0 x002B,0 x002C,0 x002D,0 x002E,0 x002F,
0 x0030,0 x0031,0 x0032,0 x0033,0 x0034,0 x0035,0 x0036,0 x0037,
0 x0038,0 x0039,0 x003A,0 x003B,0 x003C,0 x003D,0 x003E,0 x003F,
0 x0040,0 x0041,0 x0042,0 x0043,0 x0044,0 x0045,0 x0046,0 x0047,
0 x0048,0 x0049,0 x004A,0 x004B,0 x004C,0 x004D,0 x004E,0 x004F,
0 x0050,0 x0051,0 x0052,0 x0053,0 x0054,0 x0055,0 x0056,0 x0057,
0 x0058,0 x0059,0 x005A,0 x005B,0 x005C,0 x005D,0 x005E,0 x005F,
0 x0060,0 x0061,0 x0062,0 x0063,0 x0064,0 x0065,0 x0066,0 x0067,
0 x0068,0 x0069,0 x006A,0 x006B,0 x006C,0 x006D,0 x006E,0 x006F,
0 x0070,0 x0071,0 x0072,0 x0073,0 x0074,0 x0075,0 x0076,0 x0077,
0 x0078,0 x0079,0 x007A,0 x007B,0 x007C,0 x007D,0 x007E,0 x007F,
0 x20AC,0 xFFFF,0 x201A,0 x0192,0 x201E,0 x2026,0 x2020,0 x2021,
0 x02C6,0 x2030,0 xFFFF,0 x2039,0 x0152,0 xFFFF,0 xFFFF,0 xFFFF,
0 xFFFF,0 x2018,0 x2019,0 x201C,0 x201D,0 x2022,0 x2013,0 x2014,
0 x02DC,0 x2122,0 xFFFF,0 x203A,0 x0153,0 xFFFF,0 xFFFF,0 x0178,
0 x00A0,0 x00A1,0 x00A2,0 x00A3,0 x00A4,0 x00A5,0 x00A6,0 x00A7,
0 x00A8,0 x00A9,0 x00AA,0 x00AB,0 x00AC,0 x00AD,0 x00AE,0 x00AF,
0 x00B0,0 x00B1,0 x00B2,0 x00B3,0 x00B4,0 x00B5,0 x00B6,0 x00B7,
0 x00B8,0 x00B9,0 x00BA,0 x00BB,0 x00BC,0 x00BD,0 x00BE,0 x00BF,
0 x00C0,0 x00C1,0 x00C2,0 x0102,0 x00C4,0 x00C5,0 x00C6,0 x00C7,
0 x00C8,0 x00C9,0 x00CA,0 x00CB,0 x0300,0 x00CD,0 x00CE,0 x00CF,
0 x0110,0 x00D1,0 x0309,0 x00D3,0 x00D4,0 x01A0,0 x00D6,0 x00D7,
0 x00D8,0 x00D9,0 x00DA,0 x00DB,0 x00DC,0 x01AF,0 x0303,0 x00DF,
0 x00E0,0 x00E1,0 x00E2,0 x0103,0 x00E4,0 x00E5,0 x00E6,0 x00E7,
0 x00E8,0 x00E9,0 x00EA,0 x00EB,0 x0301,0 x00ED,0 x00EE,0 x00EF,
0 x0111,0 x00F1,0 x0323,0 x00F3,0 x00F4,0 x01A1,0 x00F6,0 x00F7,
0 x00F8,0 x00F9,0 x00FA,0 x00FB,0 x00FC,0 x01B0,0 x20AB,0 x00FF } },
{ RTL_TEXTENCODING_KOI8_U, // RFC 2319
{ 0 x0000,0 x0001,0 x0002,0 x0003,0 x0004,0 x0005,0 x0006,0 x0007,
0 x0008,0 x0009,0 x000A,0 x000B,0 x000C,0 x000D,0 x000E,0 x000F,
0 x0010,0 x0011,0 x0012,0 x0013,0 x0014,0 x0015,0 x0016,0 x0017,
0 x0018,0 x0019,0 x001A,0 x001B,0 x001C,0 x001D,0 x001E,0 x001F,
0 x0020,0 x0021,0 x0022,0 x0023,0 x0024,0 x0025,0 x0026,0 x0027,
0 x0028,0 x0029,0 x002A,0 x002B,0 x002C,0 x002D,0 x002E,0 x002F,
0 x0030,0 x0031,0 x0032,0 x0033,0 x0034,0 x0035,0 x0036,0 x0037,
0 x0038,0 x0039,0 x003A,0 x003B,0 x003C,0 x003D,0 x003E,0 x003F,
0 x0040,0 x0041,0 x0042,0 x0043,0 x0044,0 x0045,0 x0046,0 x0047,
0 x0048,0 x0049,0 x004A,0 x004B,0 x004C,0 x004D,0 x004E,0 x004F,
0 x0050,0 x0051,0 x0052,0 x0053,0 x0054,0 x0055,0 x0056,0 x0057,
0 x0058,0 x0059,0 x005A,0 x005B,0 x005C,0 x005D,0 x005E,0 x005F,
0 x0060,0 x0061,0 x0062,0 x0063,0 x0064,0 x0065,0 x0066,0 x0067,
0 x0068,0 x0069,0 x006A,0 x006B,0 x006C,0 x006D,0 x006E,0 x006F,
0 x0070,0 x0071,0 x0072,0 x0073,0 x0074,0 x0075,0 x0076,0 x0077,
0 x0078,0 x0079,0 x007A,0 x007B,0 x007C,0 x007D,0 x007E,0 x007F,
0 x2500,0 x2502,0 x250C,0 x2510,0 x2514,0 x2518,0 x251C,0 x2524,
0 x252C,0 x2534,0 x253C,0 x2580,0 x2584,0 x2588,0 x258C,0 x2590,
0 x2591,0 x2592,0 x2593,0 x2320,0 x25A0,0 x2219,0 x221A,0 x2248,
0 x2264,0 x2265,0 x00A0,0 x2321,0 x00B0,0 x00B2,0 x00B7,0 x00F7,
0 x2550,0 x2551,0 x2552,0 x0451,0 x0454,0 x2554,0 x0456,0 x0457,
0 x2557,0 x2558,0 x2559,0 x255A,0 x255B,0 x0491,0 x255D,0 x255E,
0 x255F,0 x2560,0 x2561,0 x0401,0 x0404,0 x2563,0 x0406,0 x0407,
0 x2566,0 x2567,0 x2568,0 x2569,0 x256A,0 x0490,0 x256C,0 x00A9,
0 x044E,0 x0430,0 x0431,0 x0446,0 x0434,0 x0435,0 x0444,0 x0433,
0 x0445,0 x0438,0 x0439,0 x043A,0 x043B,0 x043C,0 x043D,0 x043E,
0 x043F,0 x044F,0 x0440,0 x0441,0 x0442,0 x0443,0 x0436,0 x0432,
0 x044C,0 x044B,0 x0437,0 x0448,0 x044D,0 x0449,0 x0447,0 x044A,
0 x042E,0 x0410,0 x0411,0 x0426,0 x0414,0 x0415,0 x0424,0 x0413,
0 x0425,0 x0418,0 x0419,0 x041A,0 x041B,0 x041C,0 x041D,0 x041E,
0 x041F,0 x042F,0 x0420,0 x0421,0 x0422,0 x0423,0 x0416,0 x0412,
0 x042C,0 x042B,0 x0417,0 x0428,0 x042D,0 x0429,0 x0427,0 x042A } },
{ RTL_TEXTENCODING_ADOBE_STANDARD,
{ 0 xFFFF,0 xFFFF,0 xFFFF,0 xFFFF,0 xFFFF,0 xFFFF,0 xFFFF,0 xFFFF,
0 xFFFF,0 xFFFF,0 xFFFF,0 xFFFF,0 xFFFF,0 xFFFF,0 xFFFF,0 xFFFF,
0 xFFFF,0 xFFFF,0 xFFFF,0 xFFFF,0 xFFFF,0 xFFFF,0 xFFFF,0 xFFFF,
0 xFFFF,0 xFFFF,0 xFFFF,0 xFFFF,0 xFFFF,0 xFFFF,0 xFFFF,0 xFFFF,
0 x0020,0 x0021,0 x0022,0 x0023,0 x0024,0 x0025,0 x0026,0 x2019,
0 x0028,0 x0029,0 x002A,0 x002B,0 x002C,0 x002D,0 x002E,0 x002F,
0 x0030,0 x0031,0 x0032,0 x0033,0 x0034,0 x0035,0 x0036,0 x0037,
0 x0038,0 x0039,0 x003A,0 x003B,0 x003C,0 x003D,0 x003E,0 x003F,
0 x0040,0 x0041,0 x0042,0 x0043,0 x0044,0 x0045,0 x0046,0 x0047,
0 x0048,0 x0049,0 x004A,0 x004B,0 x004C,0 x004D,0 x004E,0 x004F,
0 x0050,0 x0051,0 x0052,0 x0053,0 x0054,0 x0055,0 x0056,0 x0057,
0 x0058,0 x0059,0 x005A,0 x005B,0 x005C,0 x005D,0 x005E,0 x005F,
0 x2018,0 x0061,0 x0062,0 x0063,0 x0064,0 x0065,0 x0066,0 x0067,
0 x0068,0 x0069,0 x006A,0 x006B,0 x006C,0 x006D,0 x006E,0 x006F,
0 x0070,0 x0071,0 x0072,0 x0073,0 x0074,0 x0075,0 x0076,0 x0077,
0 x0078,0 x0079,0 x007A,0 x007B,0 x007C,0 x007D,0 x007E,0 xFFFF,
0 xFFFF,0 xFFFF,0 xFFFF,0 xFFFF,0 xFFFF,0 xFFFF,0 xFFFF,0 xFFFF,
0 xFFFF,0 xFFFF,0 xFFFF,0 xFFFF,0 xFFFF,0 xFFFF,0 xFFFF,0 xFFFF,
0 xFFFF,0 xFFFF,0 xFFFF,0 xFFFF,0 xFFFF,0 xFFFF,0 xFFFF,0 xFFFF,
0 xFFFF,0 xFFFF,0 xFFFF,0 xFFFF,0 xFFFF,0 xFFFF,0 xFFFF,0 xFFFF,
0 xFFFF,0 x00A1,0 x00A2,0 x00A3,0 x2215,0 x00A5,0 x0192,0 x00A7,
0 x00A4,0 x0027,0 x201C,0 x00AB,0 x2039,0 x203A,0 xFB01,0 xFB02,
0 xFFFF,0 x2013,0 x2020,0 x2021,0 x00B7,0 xFFFF,0 x00B6,0 x2022,
0 x201A,0 x201E,0 x201D,0 x00BB,0 x2026,0 x2030,0 xFFFF,0 x00BF,
0 xFFFF,0 x0060,0 x00B4,0 x02C6,0 x02DC,0 x00AF,0 x02D8,0 x02D9,
0 x00A8,0 xFFFF,0 x02DA,0 x00B8,0 xFFFF,0 x02DD,0 x02DB,0 x02C7,
0 x2014,0 xFFFF,0 xFFFF,0 xFFFF,0 xFFFF,0 xFFFF,0 xFFFF,0 xFFFF,
0 xFFFF,0 xFFFF,0 xFFFF,0 xFFFF,0 xFFFF,0 xFFFF,0 xFFFF,0 xFFFF,
0 xFFFF,0 x00C6,0 xFFFF,0 x00AA,0 xFFFF,0 xFFFF,0 xFFFF,0 xFFFF,
0 x0141,0 x00D8,0 x0152,0 x00BA,0 xFFFF,0 xFFFF,0 xFFFF,0 xFFFF,
0 xFFFF,0 x00E6,0 xFFFF,0 xFFFF,0 xFFFF,0 x0131,0 xFFFF,0 xFFFF,
0 x0142,0 x00F8,0 x0153,0 x00DF,0 xFFFF,0 xFFFF,0 xFFFF,0 xFFFF } },
{ RTL_TEXTENCODING_ADOBE_SYMBOL,
{ 0 xFFFF,0 xFFFF,0 xFFFF,0 xFFFF,0 xFFFF,0 xFFFF,0 xFFFF,0 xFFFF,
0 xFFFF,0 xFFFF,0 xFFFF,0 xFFFF,0 xFFFF,0 xFFFF,0 xFFFF,0 xFFFF,
0 xFFFF,0 xFFFF,0 xFFFF,0 xFFFF,0 xFFFF,0 xFFFF,0 xFFFF,0 xFFFF,
0 xFFFF,0 xFFFF,0 xFFFF,0 xFFFF,0 xFFFF,0 xFFFF,0 xFFFF,0 xFFFF,
0 x0020,0 x0021,0 x2200,0 x0023,0 x2203,0 x0025,0 x0026,0 x220B,
0 x0028,0 x0029,0 x2217,0 x002B,0 x002C,0 x2212,0 x002E,0 x002F,
0 x0030,0 x0031,0 x0032,0 x0033,0 x0034,0 x0035,0 x0036,0 x0037,
0 x0038,0 x0039,0 x003A,0 x003B,0 x003C,0 x003D,0 x003E,0 x003F,
0 x2245,0 x0391,0 x0392,0 x03A7,0 x0394,0 x0395,0 x03A6,0 x0393,
0 x0397,0 x0399,0 x03D1,0 x039A,0 x039B,0 x039C,0 x039D,0 x039F,
0 x03A0,0 x0398,0 x03A1,0 x03A3,0 x03A4,0 x03A5,0 x03C2,0 x03A9,
0 x039E,0 x03A8,0 x0396,0 x005B,0 x2234,0 x005D,0 x22A5,0 x005F,
0 xF8E5,0 x03B1,0 x03B2,0 x03C7,0 x03B4,0 x03B5,0 x03C6,0 x03B3,
0 x03B7,0 x03B9,0 x03D5,0 x03BA,0 x03BB,0 x03BC,0 x03BD,0 x03BF,
0 x03C0,0 x03B8,0 x03C1,0 x03C3,0 x03C4,0 x03C5,0 x03D6,0 x03C9,
0 x03BE,0 x03C8,0 x03B6,0 x007B,0 x007C,0 x007D,0 x223C,0 xFFFF,
0 xFFFF,0 xFFFF,0 xFFFF,0 xFFFF,0 xFFFF,0 xFFFF,0 xFFFF,0 xFFFF,
0 xFFFF,0 xFFFF,0 xFFFF,0 xFFFF,0 xFFFF,0 xFFFF,0 xFFFF,0 xFFFF,
0 xFFFF,0 xFFFF,0 xFFFF,0 xFFFF,0 xFFFF,0 xFFFF,0 xFFFF,0 xFFFF,
0 xFFFF,0 xFFFF,0 xFFFF,0 xFFFF,0 xFFFF,0 xFFFF,0 xFFFF,0 xFFFF,
0 x20AC,0 x03D2,0 x2032,0 x2264,0 x2215,0 x221E,0 x0192,0 x2663,
0 x2666,0 x2665,0 x2660,0 x2194,0 x2190,0 x2191,0 x2192,0 x2193,
0 x00B0,0 x00B1,0 x2033,0 x2265,0 x00D7,0 x221D,0 x2202,0 x2022,
0 x00F7,0 x2260,0 x2261,0 x2248,0 x2026,0 x23AF,0 x23D0,0 x21B5,
0 x2135,0 x2111,0 x211C,0 x2118,0 x2297,0 x2295,0 x2205,0 x2229,
0 x222A,0 x2283,0 x2287,0 x2284,0 x2282,0 x2286,0 x2208,0 x2209,
0 x2220,0 x2207,0 xF6DA,0 xF6D9,0 xF6DB,0 x220F,0 x221A,0 x22C5,
0 x00AC,0 x2227,0 x2228,0 x21D4,0 x21D0,0 x21D1,0 x21D2,0 x21D3,
0 x25CA,0 x2329,0 xF8E8,0 xF8E9,0 xF8EA,0 x2211,0 x239B,0 x239C,
0 x239D,0 x23A1,0 x23A2,0 x23A3,0 x23A7,0 x23A8,0 x23A9,0 x23AA,
0 xFFFF,0 x232A,0 x222B,0 x2320,0 x23AE,0 x2321,0 x239E,0 x239F,
0 x23A0,0 x23A4,0 x23A5,0 x23A6,0 x23AB,0 x23AC,0 x23AD,0 xFFFF } },
{ RTL_TEXTENCODING_ADOBE_DINGBATS,
{ 0 xFFFF,0 xFFFF,0 xFFFF,0 xFFFF,0 xFFFF,0 xFFFF,0 xFFFF,0 xFFFF,
0 xFFFF,0 xFFFF,0 xFFFF,0 xFFFF,0 xFFFF,0 xFFFF,0 xFFFF,0 xFFFF,
0 xFFFF,0 xFFFF,0 xFFFF,0 xFFFF,0 xFFFF,0 xFFFF,0 xFFFF,0 xFFFF,
0 xFFFF,0 xFFFF,0 xFFFF,0 xFFFF,0 xFFFF,0 xFFFF,0 xFFFF,0 xFFFF,
// 20
0 x0020,0 x2701,0 x2702,0 x2703,0 x2704,0 x260E,0 x2706,0 x2707,
0 x2708,0 x2709,0 x261B,0 x261E,0 x270C,0 x270D,0 x270E,0 x270F,
0 x2710,0 x2711,0 x2712,0 x2713,0 x2714,0 x2715,0 x2716,0 x2717,
0 x2718,0 x2719,0 x271A,0 x271B,0 x271C,0 x271D,0 x271E,0 x271F,
// 40
0 x2720,0 x2721,0 x2722,0 x2723,0 x2724,0 x2725,0 x2726,0 x2727,
0 x2605,0 x2729,0 x272A,0 x272B,0 x272C,0 x272D,0 x272E,0 x272F,
0 x2730,0 x2731,0 x2732,0 x2733,0 x2734,0 x2735,0 x2736,0 x2737,
0 x2738,0 x2739,0 x273A,0 x273B,0 x273C,0 x273D,0 x273E,0 x273F,
// 60
0 x2740,0 x2741,0 x2742,0 x2743,0 x2744,0 x2745,0 x2746,0 x2747,
0 x2748,0 x2749,0 x274A,0 x274B,0 x25CF,0 x274D,0 x25A0,0 x274F,
0 x2750,0 x2751,0 x2752,0 x25B2,0 x25BC,0 x25C6,0 x2756,0 x25D7,
0 x2758,0 x2759,0 x275A,0 x275B,0 x275C,0 x275D,0 x275E,0 xFFFF,
// 80
0 xF8D7,0 xF8D8,0 xF8D9,0 xF8DA,0 xF8DB,0 xF8DC,0 xF8DD,0 xF8DE,
0 xF8DF,0 xF8E0,0 xF8E1,0 xF8E2,0 xF8E3,0 xF8E4,0 xFFFF,0 xFFFF,
0 xFFFF,0 xFFFF,0 xFFFF,0 xFFFF,0 xFFFF,0 xFFFF,0 xFFFF,0 xFFFF,
0 xFFFF,0 xFFFF,0 xFFFF,0 xFFFF,0 xFFFF,0 xFFFF,0 xFFFF,0 xFFFF,
// A0
0 xFFFF,0 x2761,0 x2762,0 x2763,0 x2764,0 x2765,0 x2766,0 x2767,
0 x2663,0 x2666,0 x2665,0 x2660,0 x2460,0 x2461,0 x2462,0 x2463,
0 x2464,0 x2465,0 x2466,0 x2467,0 x2468,0 x2469,0 x2776,0 x2777,
0 x2778,0 x2779,0 x277A,0 x277B,0 x277C,0 x277D,0 x277E,0 x277F,
// C0
0 x2780,0 x2781,0 x2782,0 x2783,0 x2784,0 x2785,0 x2786,0 x2787,
0 x2788,0 x2789,0 x278A,0 x278B,0 x278C,0 x278D,0 x278E,0 x278F,
0 x2790,0 x2791,0 x2792,0 x2793,0 x2794,0 x2795,0 x2796,0 x2797,
0 x2798,0 x2799,0 x279A,0 x279B,0 x279C,0 x279D,0 x279E,0 x279F,
// E0
0 x27A0,0 x27A1,0 x27A2,0 x27A3,0 x27A4,0 x27A5,0 x27A6,0 x27A7,
0 x27A8,0 x27A9,0 x27AA,0 x27AB,0 x27AC,0 x27AD,0 x27AE,0 x27AF,
0 xFFFF,0 x27B1,0 x27B2,0 x27B3,0 x27B4,0 x27B5,0 x27B6,0 x27B7,
0 x27B8,0 x27B9,0 x27BA,0 x27BB,0 x27BC,0 x27BD,0 x27BE,0 xFFFF } },
{ RTL_TEXTENCODING_PT154,
{ 0 x0000,0 x0001,0 x0002,0 x0003,0 x0004,0 x0005,0 x0006,0 x0007,
0 x0008,0 x0009,0 x000A,0 x000B,0 x000C,0 x000D,0 x000E,0 x000F,
0 x0010,0 x0011,0 x0012,0 x0013,0 x0014,0 x0015,0 x0016,0 x0017,
0 x0018,0 x0019,0 x001A,0 x001B,0 x001C,0 x001D,0 x001E,0 x001F,
0 x0020,0 x0021,0 x0022,0 x0023,0 x0024,0 x0025,0 x0026,0 x0027,
0 x0028,0 x0029,0 x002A,0 x002B,0 x002C,0 x002D,0 x002E,0 x002F,
0 x0030,0 x0031,0 x0032,0 x0033,0 x0034,0 x0035,0 x0036,0 x0037,
0 x0038,0 x0039,0 x003A,0 x003B,0 x003C,0 x003D,0 x003E,0 x003F,
0 x0040,0 x0041,0 x0042,0 x0043,0 x0044,0 x0045,0 x0046,0 x0047,
0 x0048,0 x0049,0 x004A,0 x004B,0 x004C,0 x004D,0 x004E,0 x004F,
0 x0050,0 x0051,0 x0052,0 x0053,0 x0054,0 x0055,0 x0056,0 x0057,
0 x0058,0 x0059,0 x005A,0 x005B,0 x005C,0 x005D,0 x005E,0 x005F,
0 x0060,0 x0061,0 x0062,0 x0063,0 x0064,0 x0065,0 x0066,0 x0067,
0 x0068,0 x0069,0 x006A,0 x006B,0 x006C,0 x006D,0 x006E,0 x006F,
0 x0070,0 x0071,0 x0072,0 x0073,0 x0074,0 x0075,0 x0076,0 x0077,
0 x0078,0 x0079,0 x007A,0 x007B,0 x007C,0 x007D,0 x007E,0 x007F,
0 x0496,0 x0492,0 x04EE,0 x0493,0 x201E,0 x2026,0 x04B6,0 x04AE,
0 x04B2,0 x04AF,0 x04A0,0 x04E2,0 x04A2,0 x049A,0 x04BA,0 x04B8,
0 x0497,0 x2018,0 x2019,0 x201C,0 x201D,0 x2022,0 x2013,0 x2014,
0 x04B3,0 x04B7,0 x04A1,0 x04E3,0 x04A3,0 x049B,0 x04BB,0 x04B9,
0 x00A0,0 x040E,0 x045E,0 x0408,0 x04E8,0 x0498,0 x04B0,0 x00A7,
0 x0401,0 x00A9,0 x04D8,0 x00AB,0 x00AC,0 x04EF,0 x00AE,0 x049C,
0 x00B0,0 x04B1,0 x0406,0 x0456,0 x0499,0 x04E9,0 x00B6,0 x00B7,
0 x0451,0 x2116,0 x04D9,0 x00BB,0 x0458,0 x04AA,0 x04AB,0 x049D,
0 x0410,0 x0411,0 x0412,0 x0413,0 x0414,0 x0415,0 x0416,0 x0417,
0 x0418,0 x0419,0 x041A,0 x041B,0 x041C,0 x041D,0 x041E,0 x041F,
0 x0420,0 x0421,0 x0422,0 x0423,0 x0424,0 x0425,0 x0426,0 x0427,
0 x0428,0 x0429,0 x042A,0 x042B,0 x042C,0 x042D,0 x042E,0 x042F,
0 x0430,0 x0431,0 x0432,0 x0433,0 x0434,0 x0435,0 x0436,0 x0437,
0 x0438,0 x0439,0 x043A,0 x043B,0 x043C,0 x043D,0 x043E,0 x043F,
0 x0440,0 x0441,0 x0442,0 x0443,0 x0444,0 x0445,0 x0446,0 x0447,
0 x0448,0 x0449,0 x044A,0 x044B,0 x044C,0 x044D,0 x044E,0 x044F } },
{ RTL_TEXTENCODING_KAMENICKY,
{ 0 x0000,0 x0001,0 x0002,0 x0003,0 x0004,0 x0005,0 x0006,0 x0007,
0 x0008,0 x0009,0 x000A,0 x000B,0 x000C,0 x000D,0 x000E,0 x000F,
0 x0010,0 x0011,0 x0012,0 x0013,0 x0014,0 x0015,0 x0016,0 x0017,
0 x0018,0 x0019,0 x001A,0 x001B,0 x001C,0 x001D,0 x001E,0 x001F,
0 x0020,0 x0021,0 x0022,0 x0023,0 x0024,0 x0025,0 x0026,0 x0027,
0 x0028,0 x0029,0 x002A,0 x002B,0 x002C,0 x002D,0 x002E,0 x002F,
0 x0030,0 x0031,0 x0032,0 x0033,0 x0034,0 x0035,0 x0036,0 x0037,
0 x0038,0 x0039,0 x003A,0 x003B,0 x003C,0 x003D,0 x003E,0 x003F,
0 x0040,0 x0041,0 x0042,0 x0043,0 x0044,0 x0045,0 x0046,0 x0047,
0 x0048,0 x0049,0 x004A,0 x004B,0 x004C,0 x004D,0 x004E,0 x004F,
0 x0050,0 x0051,0 x0052,0 x0053,0 x0054,0 x0055,0 x0056,0 x0057,
0 x0058,0 x0059,0 x005A,0 x005B,0 x005C,0 x005D,0 x005E,0 x005F,
0 x0060,0 x0061,0 x0062,0 x0063,0 x0064,0 x0065,0 x0066,0 x0067,
0 x0068,0 x0069,0 x006A,0 x006B,0 x006C,0 x006D,0 x006E,0 x006F,
0 x0070,0 x0071,0 x0072,0 x0073,0 x0074,0 x0075,0 x0076,0 x0077,
0 x0078,0 x0079,0 x007A,0 x007B,0 x007C,0 x007D,0 x007E,0 x007F,
0 x010C,0 x00FC,0 x00E9,0 x010F,0 x00E4,0 x010E,0 x0164,0 x010D,
0 x011B,0 x011A,0 x0139,0 x00CD,0 x013E,0 x013A,0 x00C4,0 x00C1,
0 x00C9,0 x017E,0 x017D,0 x00F4,0 x00F6,0 x00D3,0 x016F,0 x00DA,
0 x00FD,0 x00D6,0 x00DC,0 x0160,0 x013D,0 x00DD,0 x0158,0 x0165,
0 x00E1,0 x00ED,0 x00F3,0 x00FA,0 x0148,0 x0147,0 x016E,0 x00D4,
0 x0161,0 x0159,0 x0155,0 x0154,0 x00BC,0 x00A7,0 x00AB,0 x00BB,
0 x2591,0 x2592,0 x2593,0 x2502,0 x2524,0 x2561,0 x2562,0 x2556,
0 x2555,0 x2563,0 x2551,0 x2557,0 x255D,0 x255C,0 x255B,0 x2510,
0 x2514,0 x2534,0 x252C,0 x251C,0 x2500,0 x253C,0 x255E,0 x255F,
0 x255A,0 x2554,0 x2569,0 x2566,0 x2560,0 x2550,0 x256C,0 x2567,
0 x2568,0 x2564,0 x2565,0 x2559,0 x2558,0 x2552,0 x2553,0 x256B,
0 x256A,0 x2518,0 x250C,0 x2588,0 x2584,0 x258C,0 x2590,0 x2580,
0 x03B1,0 x00DF,0 x0393,0 x03C0,0 x03A3,0 x03C3,0 x00B5,0 x03C4,
0 x03A6,0 x0398,0 x03A9,0 x03B4,0 x221E,0 x03C6,0 x03B5,0 x2229,
0 x2261,0 x00B1,0 x2265,0 x2264,0 x2320,0 x2321,0 x00F7,0 x2248,
0 x00B0,0 x2219,0 x00B7,0 x221A,0 x207F,0 x00B2,0 x25A0,0 x00A0 } },
{ RTL_TEXTENCODING_MAZOVIA,
{ 0 x0000,0 x0001,0 x0002,0 x0003,0 x0004,0 x0005,0 x0006,0 x0007,
0 x0008,0 x0009,0 x000A,0 x000B,0 x000C,0 x000D,0 x000E,0 x000F,
0 x0010,0 x0011,0 x0012,0 x0013,0 x0014,0 x0015,0 x0016,0 x0017,
0 x0018,0 x0019,0 x001A,0 x001B,0 x001C,0 x001D,0 x001E,0 x001F,
0 x0020,0 x0021,0 x0022,0 x0023,0 x0024,0 x0025,0 x0026,0 x0027,
0 x0028,0 x0029,0 x002A,0 x002B,0 x002C,0 x002D,0 x002E,0 x002F,
0 x0030,0 x0031,0 x0032,0 x0033,0 x0034,0 x0035,0 x0036,0 x0037,
0 x0038,0 x0039,0 x003A,0 x003B,0 x003C,0 x003D,0 x003E,0 x003F,
0 x0040,0 x0041,0 x0042,0 x0043,0 x0044,0 x0045,0 x0046,0 x0047,
0 x0048,0 x0049,0 x004A,0 x004B,0 x004C,0 x004D,0 x004E,0 x004F,
0 x0050,0 x0051,0 x0052,0 x0053,0 x0054,0 x0055,0 x0056,0 x0057,
0 x0058,0 x0059,0 x005A,0 x005B,0 x005C,0 x005D,0 x005E,0 x005F,
0 x0060,0 x0061,0 x0062,0 x0063,0 x0064,0 x0065,0 x0066,0 x0067,
0 x0068,0 x0069,0 x006A,0 x006B,0 x006C,0 x006D,0 x006E,0 x006F,
0 x0070,0 x0071,0 x0072,0 x0073,0 x0074,0 x0075,0 x0076,0 x0077,
0 x0078,0 x0079,0 x007A,0 x007B,0 x007C,0 x007D,0 x007E,0 x007F,
0 x00C7,0 x00FC,0 x00E9,0 x00E2,0 x00E4,0 x00E0,0 x0105,0 x00E7,
0 x00EA,0 x00EB,0 x00E8,0 x00EF,0 x00EE,0 x0107,0 x00C4,0 x0104,
0 x0118,0 x0119,0 x0142,0 x00F4,0 x00F6,0 x0106,0 x00FB,0 x00F9,
0 x015A,0 x00D6,0 x00DC,0 x00A2,0 x0141,0 x00A5,0 x015B,0 x0192,
0 x0179,0 x017B,0 x00F3,0 x00D3,0 x0144,0 x0143,0 x017A,0 x017C,
0 x00BF,0 x2310,0 x00AC,0 x00BD,0 x00BC,0 x00A1,0 x00AB,0 x00BB,
0 x2591,0 x2592,0 x2593,0 x2502,0 x2524,0 x2561,0 x2562,0 x2556,
0 x2555,0 x2563,0 x2551,0 x2557,0 x255D,0 x255C,0 x255B,0 x2510,
0 x2514,0 x2534,0 x252C,0 x251C,0 x2500,0 x253C,0 x255E,0 x255F,
0 x255A,0 x2554,0 x2569,0 x2566,0 x2560,0 x2550,0 x256C,0 x2567,
0 x2568,0 x2564,0 x2565,0 x2559,0 x2558,0 x2552,0 x2553,0 x256B,
0 x256A,0 x2518,0 x250C,0 x2588,0 x2584,0 x258C,0 x2590,0 x2580,
0 x03B1,0 x00DF,0 x0393,0 x03C0,0 x03A3,0 x03C3,0 x00B5,0 x03C4,
0 x03A6,0 x0398,0 x03A9,0 x03B4,0 x221E,0 x03C6,0 x03B5,0 x2229,
0 x2261,0 x00B1,0 x2265,0 x2264,0 x2320,0 x2321,0 x00F7,0 x2248,
0 x00B0,0 x2219,0 x00B7,0 x221A,0 x207F,0 x00B2,0 x25A0,0 x00A0 } } };
for (auto const & aDatum : data)
{
testSingleByteCharSet(aDatum);
}
}
void Test::testComplex() {
static ComplexCharSetTest const data[]
= { { RTL_TEXTENCODING_ASCII_US,
RTL_CONSTASCII_STRINGPARAM("\x01\" 3 De$~"),
{ 0 x0001,0 x0022,0 x0033,0 x0044,0 x0065,0 x0024,0 x007E },
7 ,
true ,
true ,
true ,
false ,
RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
#if WITH_LOCALE_ALL || WITH_LOCALE_zh
{ RTL_TEXTENCODING_EUC_CN,
RTL_CONSTASCII_STRINGPARAM("\x01\" 3 De$~\xA1\xB9\xF0\xC5"),
{ 0 x0001,0 x0022,0 x0033,0 x0044,0 x0065,0 x0024,0 x007E,
0 x300D,0 x9E4B },
9 ,
true ,
true ,
true ,
false ,
RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
{ RTL_TEXTENCODING_EUC_TW,
RTL_CONSTASCII_STRINGPARAM(
"\x01\" 3 De$~\xC5\xF0\x8E\xA4\xDC\xD9"),
{ 0 x0001,0 x0022,0 x0033,0 x0044,0 x0065,0 x0024,0 x007E,
0 x4ED9,0 xD87E,0 xDD68 },
10 ,
true ,
true ,
true ,
false ,
RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
{ RTL_TEXTENCODING_GB_18030,
RTL_CONSTASCII_STRINGPARAM("\x01\" 3 De$~"),
{ 0 x0001,0 x0022,0 x0033,0 x0044,0 x0065,0 x0024,0 x007E },
7 ,
true ,
true ,
true ,
false ,
RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
{ RTL_TEXTENCODING_GB_18030,
RTL_CONSTASCII_STRINGPARAM("\x81\x40\xFE\xFE" ),
{ 0 x4E02,0 xE4C5 },
2 ,
true ,
true ,
true ,
false ,
RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
{ RTL_TEXTENCODING_GB_18030,
RTL_CONSTASCII_STRINGPARAM(
"\x81\x30\xB1\x33\x81\x30\xD3\x30\x81\x36\xA5\x31" ),
{ 0 x028A,0 x0452,0 x200F },
3 ,
true ,
true ,
true ,
false ,
RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
{ RTL_TEXTENCODING_GB_18030,
RTL_CONSTASCII_STRINGPARAM(
"\xFE\x50\xFE\x51\xFE\x52\xFE\x53\xFE\x54\xFE\x55\xFE\x56"
"\xFE\x57\xFE\x58\xFE\x59\xFE\x5A\xFE\x5B\xFE\x5C\xFE\x5D"
"\xFE\x5E\xFE\x5F\xFE\x60\xFE\x61\xFE\x62\xFE\x63\xFE\x64"
"\xFE\x65\xFE\x66\xFE\x67\xFE\x68\xFE\x69\xFE\x6A\xFE\x6B"
"\xFE\x6C\xFE\x6D\xFE\x6E\xFE\x6F\xFE\x70\xFE\x71\xFE\x72"
"\xFE\x73\xFE\x74\xFE\x75\xFE\x76\xFE\x77\xFE\x78\xFE\x79"
"\xFE\x7A\xFE\x7B\xFE\x7C\xFE\x7D\xFE\x7E\xFE\x80\xFE\x81"
"\xFE\x82\xFE\x83\xFE\x84\xFE\x85\xFE\x86\xFE\x87\xFE\x88"
"\xFE\x89\xFE\x8A\xFE\x8B\xFE\x8C\xFE\x8D\xFE\x8E\xFE\x8F"
"\xFE\x90\xFE\x91\xFE\x92\xFE\x93\xFE\x94\xFE\x95\xFE\x96"
"\xFE\x97\xFE\x98\xFE\x99\xFE\x9A\xFE\x9B\xFE\x9C\xFE\x9D"
"\xFE\x9E\xFE\x9F\xFE\xA0" ),
{ 0 x2E81,0 xE816,0 xE817,0 xE818,0 x2E84,0 x3473,0 x3447,0 x2E88,
0 x2E8B,0 xE81E,0 x359E,0 x361A,0 x360E,0 x2E8C,0 x2E97,0 x396E,
0 x3918,0 xE826,0 x39CF,0 x39DF,0 x3A73,0 x39D0,0 xE82B,0 xE82C,
0 x3B4E,0 x3C6E,0 x3CE0,0 x2EA7,0 xE831,0 xE832,0 x2EAA,0 x4056,
0 x415F,0 x2EAE,0 x4337,0 x2EB3,0 x2EB6,0 x2EB7,0 xE83B,0 x43B1,
0 x43AC,0 x2EBB,0 x43DD,0 x44D6,0 x4661,0 x464C,0 xE843,0 x4723,
0 x4729,0 x477C,0 x478D,0 x2ECA,0 x4947,0 x497A,0 x497D,0 x4982,
0 x4983,0 x4985,0 x4986,0 x499F,0 x499B,0 x49B7,0 x49B6,0 xE854,
0 xE855,0 x4CA3,0 x4C9F,0 x4CA0,0 x4CA1,0 x4C77,0 x4CA2,0 x4D13,
0 x4D14,0 x4D15,0 x4D16,0 x4D17,0 x4D18,0 x4D19,0 x4DAE,0 xE864 },
80 ,
true ,
true ,
false ,
false ,
RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
#endif
#if WITH_LOCALE_ALL || WITH_LOCALE_ja
{ RTL_TEXTENCODING_ISO_2022_JP,
RTL_CONSTASCII_STRINGPARAM("\x01\" 3 De$\\~"),
{ 0 x0001,0 x0022,0 x0033,0 x0044,0 x0065,0 x0024,0 x005C,0 x007E },
8 ,
false ,
true ,
true ,
false ,
RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
{ RTL_TEXTENCODING_ISO_2022_JP,
RTL_CONSTASCII_STRINGPARAM("\x1B(B\x01\" 3 De$\\~"),
{ 0 x0001,0 x0022,0 x0033,0 x0044,0 x0065,0 x0024,0 x005C,0 x007E },
8 ,
false ,
true ,
false ,
false ,
RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
{ RTL_TEXTENCODING_ISO_2022_JP,
RTL_CONSTASCII_STRINGPARAM("\x1B(J\x01\" 3 De$\\~"),
{ 0 x0001,0 x0022,0 x0033,0 x0044,0 x0065,0 x0024,0 x00A5,0 x00AF },
8 ,
false ,
true ,
false ,
false ,
RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
{ RTL_TEXTENCODING_ISO_2022_JP,
RTL_CONSTASCII_STRINGPARAM("\x1B$B\x26\x21\x27\x71\x1B(B" ),
{ 0 x0391,0 x044F },
2 ,
false ,
true ,
true ,
false ,
RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
#endif
#if WITH_LOCALE_ALL || WITH_LOCALE_ko
{ RTL_TEXTENCODING_ISO_2022_KR,
RTL_CONSTASCII_STRINGPARAM("\x1B$)C\x01\" 3 De$\\~"),
{ 0 x0001,0 x0022,0 x0033,0 x0044,0 x0065,0 x0024,0 x005C,0 x007E },
8 ,
false ,
true ,
true ,
false ,
RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
{ RTL_TEXTENCODING_ISO_2022_KR,
RTL_CONSTASCII_STRINGPARAM(
"\x1B$)C\x0E\x25\x21\x0F\x0D\x0Ax\x0E\x48\x7E\x0F" ),
{ 0 x2170,0 x000D,0 x000A,0 x0078,0 xD79D },
5 ,
false ,
true ,
true ,
false ,
RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
#endif
#if WITH_LOCALE_ALL || WITH_LOCALE_zh
{ RTL_TEXTENCODING_ISO_2022_CN,
RTL_CONSTASCII_STRINGPARAM(
"\x01\" 3 De$\\~\x1B$)G\x0E\x45\x70\x1B$*H\x1BN\x22\x22"
"\x45\x70\x0F\x1B$)A\x0E\x26\x21\x0F" ),
{ 0 x0001,0 x0022,0 x0033,0 x0044,0 x0065,0 x0024,0 x005C,0 x007E,
0 x4ED9,0 x531F,0 x4ED9,0 x0391 },
12 ,
false ,
true ,
false ,
false ,
RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
{ RTL_TEXTENCODING_ISO_2022_CN,
RTL_CONSTASCII_STRINGPARAM(
"\x01\" 3 De$\\~\x1B$)A\x0E\x26\x21\x1B$*H\x1BN\x22\x22"
"\x26\x21\x0F\x0D\x0A\x1B$)A\x0E\x26\x21\x0F" ),
{ 0 x0001,0 x0022,0 x0033,0 x0044,0 x0065,0 x0024,0 x005C,0 x007E,
0 x0391,0 x531F,0 x0391,0 x000D,0 x000A,0 x0391 },
14 ,
false ,
true ,
true ,
false ,
RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
#endif
// The following does not work as long as Big5-HKSCS maps to
// Unicode PUA instead of Plane 2. Use the next two tests
// instead:
// { RTL_TEXTENCODING_BIG5_HKSCS,
// RTL_CONSTASCII_STRINGPARAM(
// "\x01\"3De$~\x88\x56\xF9\xFE\xFA\x5E\xA1\x40\xF9\xD5"),
// { 0x0001,0x0022,0x0033,0x0044,0x0065,0x0024,0x007E,0x0100,
// 0xFFED,0xD849,0xDD13,0x3000,0x9F98 },
// 13,
// true,
// true,
// true,
// false,
// RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
#if WITH_LOCALE_ALL || WITH_LOCALE_zh
{ RTL_TEXTENCODING_BIG5_HKSCS,
RTL_CONSTASCII_STRINGPARAM(
"\x01\" 3 De$~\x88\x56\xF9\xFE\xFA\x5E\xA1\x40\xF9\xD5"),
{ 0 x0001,0 x0022,0 x0033,0 x0044,0 x0065,0 x0024,0 x007E,0 x0100,
0 xFFED,0 xE01E,0 x3000,0 x9F98 },
12 ,
true ,
true ,
true ,
false ,
RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
{ RTL_TEXTENCODING_BIG5_HKSCS,
RTL_CONSTASCII_STRINGPARAM(
"\x01\" 3 De$~\x88\x56\xF9\xFE\xFA\x5E\xA1\x40\xF9\xD5"),
{ 0 x0001,0 x0022,0 x0033,0 x0044,0 x0065,0 x0024,0 x007E,0 x0100,
0 xFFED,0 xD849,0 xDD13,0 x3000,0 x9F98 },
13 ,
true ,
false ,
true ,
false ,
RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
{ RTL_TEXTENCODING_BIG5_HKSCS,
RTL_CONSTASCII_STRINGPARAM(
"\xC6\xA1\xC6\xCF\xC6\xD3\xC6\xD5\xC6\xD7\xC6\xDE\xC6\xDF"
"\xC6\xFE\xC7\x40\xC7\x7E\xC7\xA1\xC7\xFE" ),
{ 0 x2460,0 xF6E0,0 xF6E4,0 xF6E6,0 xF6E8,0 xF6EF,0 xF6F0,0 x3058,
0 x3059,0 x30A4,0 x30A5,0 x041A },
12 ,
true ,
true ,
true ,
false ,
RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
{ RTL_TEXTENCODING_BIG5_HKSCS,
RTL_CONSTASCII_STRINGPARAM("\x81\x40\x84\xFE" ),
{ 0 xEEB8,0 xF12B },
2 ,
true ,
true ,
true ,
false ,
RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
{ RTL_TEXTENCODING_BIG5_HKSCS,
RTL_CONSTASCII_STRINGPARAM(
"\x81\x40\x8D\xFE\x8E\x40\xA0\xFE\xC6\xA1\xC8\xFE\xFA\x40"
"\xFE\xFE" ),
{ 0 xEEB8,0 xF6B0,0 xE311,0 xEEB7,0 xF6B1,0 xF848,0 xE000,0 xE310 },
8 ,
true ,
false ,
true ,
false ,
RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
{ RTL_TEXTENCODING_BIG5_HKSCS,
RTL_CONSTASCII_STRINGPARAM("\xAD\xC5\x94\x55" ),
{ 0 x5029,0 x7250 },
2 ,
true ,
true ,
true ,
false ,
RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
{ RTL_TEXTENCODING_BIG5_HKSCS,
RTL_CONSTASCII_STRINGPARAM("\xFA\x5F\xA0\xE4" ),
{ 0 x5029,0 x7250 },
2 ,
true ,
true ,
false ,
false ,
RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
{ RTL_TEXTENCODING_BIG5_HKSCS,
RTL_CONSTASCII_STRINGPARAM("\xA0\x40\xA0\x7E\xA0\xA1\xA0\xFE" ),
{ 0 xEE1B,0 xEE59,0 xEE5A,0 xEEB7 },
4 ,
true ,
false ,
true ,
false ,
RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
{ RTL_TEXTENCODING_BIG5,
RTL_CONSTASCII_STRINGPARAM("\xA1\x45" ),
{ 0 x2027 },
1 ,
true ,
true ,
true ,
false ,
RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
{ RTL_TEXTENCODING_BIG5,
RTL_CONSTASCII_STRINGPARAM(
"\xC6\xCF\xC6\xD3\xC6\xD5\xC6\xD7\xC6\xDE\xC6\xDF" ),
{ 0 x306B,0 x306F,0 x3071,0 x3073,0 x307A,0 x307B },
6 ,
true ,
true ,
true ,
false ,
RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
{ RTL_TEXTENCODING_BIG5,
RTL_CONSTASCII_STRINGPARAM(
"\xC7\xFD\xC7\xFE\xC8\x40\xC8\x7E\xC8\xA1\xC8\xFE" ),
{ 0 xF7AA,0 xF7AB,0 xF7AC,0 xF7EA,0 xF7EB,0 xF848 },
6 ,
true ,
true ,
true ,
false ,
RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
{ RTL_TEXTENCODING_BIG5,
RTL_CONSTASCII_STRINGPARAM("\xA0\x40\xA0\x7E\xA0\xA1\xA0\xFE" ),
{ 0 xEE1B,0 xEE59,0 xEE5A,0 xEEB7 },
4 ,
true ,
true ,
true ,
false ,
RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
#endif
{ RTL_TEXTENCODING_MS_950,
RTL_CONSTASCII_STRINGPARAM(
"\xC6\xA1\xC6\xFE\xC7\x40\xC7\x7E\xC7\xA1\xC7\xFE\xC8\x40"
"\xC8\x7E\xC8\xA1\xC8\xFE" ),
{ 0 xF6B1,0 xF70E,0 xF70F,0 xF74D,0 xF74E,0 xF7AB,0 xF7AC,0 xF7EA,
0 xF7EB,0 xF848 },
10 ,
true ,
true ,
true ,
false ,
RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
{ RTL_TEXTENCODING_MS_950,
RTL_CONSTASCII_STRINGPARAM("\xA0\x40\xA0\x7E\xA0\xA1\xA0\xFE" ),
{ 0 xEE1B,0 xEE59,0 xEE5A,0 xEEB7 },
4 ,
true ,
true ,
true ,
false ,
RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
// Test Unicode beyond BMP:
// FIXME The second m_bForward test (requiring a context) does not
// work for UTF7:
// { RTL_TEXTENCODING_UTF7,
// RTL_CONSTASCII_STRINGPARAM("+2EndEw-"),
// { 0xD849,0xDD13 },
// 2,
// true,
// true,
// true,
// false,
// RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
{ RTL_TEXTENCODING_UTF8,
RTL_CONSTASCII_STRINGPARAM("\xF0\xA2\x94\x93" ),
{ 0 xD849,0 xDD13 },
2 ,
true ,
true ,
true ,
false ,
RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
#if WITH_LOCALE_ALL || WITH_LOCALE_zh
{ RTL_TEXTENCODING_GB_18030,
RTL_CONSTASCII_STRINGPARAM("\x95\x39\xC5\x37" ),
{ 0 xD849,0 xDD13 },
2 ,
true ,
true ,
true ,
false ,
RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
{ RTL_TEXTENCODING_BIG5_HKSCS,
RTL_CONSTASCII_STRINGPARAM("\xFA\x5E" ),
{ 0 xD849,0 xDD13 },
2 ,
true ,
false ,
true ,
false ,
RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
// Test GBK (aka CP936):
{ RTL_TEXTENCODING_GBK,
RTL_CONSTASCII_STRINGPARAM("\xFD\x7C\xC1\xFA\xFD\x9B" ),
{ 0 x9F76,0 x9F99,0 x9FA5 },
3 ,
true ,
true ,
true ,
false ,
RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
#endif
{ RTL_TEXTENCODING_MS_936,
RTL_CONSTASCII_STRINGPARAM("\xFD\x7C\xC1\xFA\xFD\x9B" ),
{ 0 x9F76,0 x9F99,0 x9FA5 },
3 ,
true ,
true ,
true ,
false ,
RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
#if WITH_LOCALE_ALL || WITH_LOCALE_zh
{ RTL_TEXTENCODING_GBK,
RTL_CONSTASCII_STRINGPARAM(
"\xFE\x50\xFE\x54\xFE\x55\xFE\x56"
"\xFE\x57\xFE\x58\xFE\x5A\xFE\x5B\xFE\x5C\xFE\x5D"
"\xFE\x5E\xFE\x5F\xFE\x60\xFE\x62\xFE\x63\xFE\x64"
"\xFE\x65\xFE\x68\xFE\x69\xFE\x6A\xFE\x6B"
"\xFE\x6E\xFE\x6F\xFE\x70\xFE\x71\xFE\x72"
"\xFE\x73\xFE\x74\xFE\x75\xFE\x77\xFE\x78\xFE\x79"
"\xFE\x7A\xFE\x7B\xFE\x7C\xFE\x7D\xFE\x80\xFE\x81"
"\xFE\x82\xFE\x83\xFE\x84\xFE\x85\xFE\x86\xFE\x87\xFE\x88"
"\xFE\x89\xFE\x8A\xFE\x8B\xFE\x8C\xFE\x8D\xFE\x8E\xFE\x8F"
"\xFE\x92\xFE\x93\xFE\x94\xFE\x95\xFE\x96"
"\xFE\x97\xFE\x98\xFE\x99\xFE\x9A\xFE\x9B\xFE\x9C\xFE\x9D"
"\xFE\x9E\xFE\x9F" ),
{ 0 x2E81,0 x2E84,0 x3473,0 x3447,0 x2E88,0 x2E8B,0 x359E,0 x361A,
0 x360E,0 x2E8C,0 x2E97,0 x396E,0 x3918,0 x39CF,0 x39DF,0 x3A73,
0 x39D0,0 x3B4E,0 x3C6E,0 x3CE0,0 x2EA7,0 x2EAA,0 x4056,0 x415F,
0 x2EAE,0 x4337,0 x2EB3,0 x2EB6,0 x2EB7,0 x43B1,0 x43AC,0 x2EBB,
0 x43DD,0 x44D6,0 x4661,0 x464C,0 x4723,0 x4729,0 x477C,0 x478D,
0 x2ECA,0 x4947,0 x497A,0 x497D,0 x4982,0 x4983,0 x4985,0 x4986,
0 x499F,0 x499B,0 x49B7,0 x49B6,0 x4CA3,0 x4C9F,0 x4CA0,0 x4CA1,
0 x4C77,0 x4CA2,0 x4D13,0 x4D14,0 x4D15,0 x4D16,0 x4D17,0 x4D18,
0 x4D19,0 x4DAE },
66 ,
true ,
true ,
true ,
false ,
RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
#endif
#if WITH_LOCALE_ALL || WITH_LOCALE_ja
{ RTL_TEXTENCODING_EUC_JP,
RTL_CONSTASCII_STRINGPARAM("?" ),
{ 0 xFF0D },
1 ,
true ,
false ,
true ,
false ,
RTL_UNICODETOTEXT_FLAGS_UNDEFINED_QUESTIONMARK },
#endif
// Test of "JIS X 0208 row 13" (taken from CP932; added to
// ISO-2022-JP and EUC-JP; 74 of the 83 characters introduce
// mappings to new Unicode characters):
{ RTL_TEXTENCODING_MS_932,
RTL_CONSTASCII_STRINGPARAM(
"\x87\x40\x87\x41\x87\x42\x87\x43\x87\x44\x87\x45\x87\x46"
"\x87\x47\x87\x48\x87\x49\x87\x4A\x87\x4B\x87\x4C\x87\x4D"
"\x87\x4E\x87\x4F\x87\x50\x87\x51\x87\x52\x87\x53\x87\x54"
"\x87\x55\x87\x56\x87\x57\x87\x58\x87\x59\x87\x5A\x87\x5B"
"\x87\x5C\x87\x5D\x87\x5F\x87\x60\x87\x61\x87\x62\x87\x63"
"\x87\x64\x87\x65\x87\x66\x87\x67\x87\x68\x87\x69\x87\x6A"
"\x87\x6B\x87\x6C\x87\x6D\x87\x6E\x87\x6F\x87\x70\x87\x71"
"\x87\x72\x87\x73\x87\x74\x87\x75\x87\x7E\x87\x80\x87\x81"
"\x87\x82\x87\x83\x87\x84\x87\x85\x87\x86\x87\x87\x87\x88"
"\x87\x89\x87\x8A\x87\x8B\x87\x8C\x87\x8D\x87\x8E\x87\x8F"
"\x87\x90\x87\x91\x87\x92\x87\x93\x87\x94\x87\x95\x87\x96"
"\x87\x97\x87\x98\x87\x99\x87\x9A\x87\x9B\x87\x9C" ),
{ 0 x2460,0 x2461,0 x2462,0 x2463,0 x2464,0 x2465,0 x2466,0 x2467,0 x2468,
0 x2469,0 x246A,0 x246B,0 x246C,0 x246D,0 x246E,0 x246F,0 x2470,0 x2471,
0 x2472,0 x2473,0 x2160,0 x2161,0 x2162,0 x2163,0 x2164,0 x2165,0 x2166,
0 x2167,0 x2168,0 x2169,0 x3349,0 x3314,0 x3322,0 x334D,0 x3318,0 x3327,
0 x3303,0 x3336,0 x3351,0 x3357,0 x330D,0 x3326,0 x3323,0 x332B,0 x334A,
0 x333B,0 x339C,0 x339D,0 x339E,0 x338E,0 x338F,0 x33C4,0 x33A1,0 x337B,
0 x301D,0 x301F,0 x2116,0 x33CD,0 x2121,0 x32A4,0 x32A5,0 x32A6,0 x32A7,
0 x32A8,0 x3231,0 x3232,0 x3239,0 x337E,0 x337D,0 x337C,0 x2252,0 x2261,
0 x222B,0 x222E,0 x2211,0 x221A,0 x22A5,0 x2220,0 x221F,0 x22BF,0 x2235,
0 x2229,0 x222A },
83 ,
true ,
true ,
false ,
false ,
RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
#if WITH_LOCALE_ALL || WITH_LOCALE_ja
{ RTL_TEXTENCODING_SHIFT_JIS,
RTL_CONSTASCII_STRINGPARAM("\x00\xFA\x6F\xFA\x71" ),
{0 x0000, 0 x4F92, 0 x4F9A},
3 ,
true ,
true ,
true ,
false ,
RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
{ RTL_TEXTENCODING_SHIFT_JIS,
RTL_CONSTASCII_STRINGPARAM(
"\x87\x40\x87\x41\x87\x42\x87\x43\x87\x44\x87\x45\x87\x46"
"\x87\x47\x87\x48\x87\x49\x87\x4A\x87\x4B\x87\x4C\x87\x4D"
"\x87\x4E\x87\x4F\x87\x50\x87\x51\x87\x52\x87\x53\x87\x54"
"\x87\x55\x87\x56\x87\x57\x87\x58\x87\x59\x87\x5A\x87\x5B"
"\x87\x5C\x87\x5D\x87\x5F\x87\x60\x87\x61\x87\x62\x87\x63"
"\x87\x64\x87\x65\x87\x66\x87\x67\x87\x68\x87\x69\x87\x6A"
"\x87\x6B\x87\x6C\x87\x6D\x87\x6E\x87\x6F\x87\x70\x87\x71"
"\x87\x72\x87\x73\x87\x74\x87\x75\x87\x7E\x87\x80\x87\x81"
"\x87\x82\x87\x83\x87\x84\x87\x85\x87\x86\x87\x87\x87\x88"
"\x87\x89\x87\x8A\x87\x8B\x87\x8C\x87\x8D\x87\x8E\x87\x8F"
"\x87\x90\x87\x91\x87\x92\x87\x93\x87\x94\x87\x95\x87\x96"
"\x87\x97\x87\x98\x87\x99\x87\x9A\x87\x9B\x87\x9C" ),
{ 0 x2460,0 x2461,0 x2462,0 x2463,0 x2464,0 x2465,0 x2466,0 x2467,0 x2468,
0 x2469,0 x246A,0 x246B,0 x246C,0 x246D,0 x246E,0 x246F,0 x2470,0 x2471,
0 x2472,0 x2473,0 x2160,0 x2161,0 x2162,0 x2163,0 x2164,0 x2165,0 x2166,
0 x2167,0 x2168,0 x2169,0 x3349,0 x3314,0 x3322,0 x334D,0 x3318,0 x3327,
0 x3303,0 x3336,0 x3351,0 x3357,0 x330D,0 x3326,0 x3323,0 x332B,0 x334A,
0 x333B,0 x339C,0 x339D,0 x339E,0 x338E,0 x338F,0 x33C4,0 x33A1,0 x337B,
0 x301D,0 x301F,0 x2116,0 x33CD,0 x2121,0 x32A4,0 x32A5,0 x32A6,0 x32A7,
0 x32A8,0 x3231,0 x3232,0 x3239,0 x337E,0 x337D,0 x337C,0 x2252,0 x2261,
0 x222B,0 x222E,0 x2211,0 x221A,0 x22A5,0 x2220,0 x221F,0 x22BF,0 x2235,
0 x2229,0 x222A },
83 ,
true ,
true ,
false ,
false ,
RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
{ RTL_TEXTENCODING_ISO_2022_JP,
RTL_CONSTASCII_STRINGPARAM(
"\x1B$B\x2D\x21\x2D\x22\x2D\x23\x2D\x24\x2D\x25\x2D\x26"
"\x2D\x27\x2D\x28\x2D\x29\x2D\x2A\x2D\x2B\x2D\x2C\x2D\x2D"
"\x2D\x2E\x2D\x2F\x2D\x30\x2D\x31\x2D\x32\x2D\x33\x2D\x34"
"\x2D\x35\x2D\x36\x2D\x37\x2D\x38\x2D\x39\x2D\x3A\x2D\x3B"
"\x2D\x3C\x2D\x3D\x2D\x3E\x2D\x40\x2D\x41\x2D\x42\x2D\x43"
"\x2D\x44\x2D\x45\x2D\x46\x2D\x47\x2D\x48\x2D\x49\x2D\x4A"
"\x2D\x4B\x2D\x4C\x2D\x4D\x2D\x4E\x2D\x4F\x2D\x50\x2D\x51"
"\x2D\x52\x2D\x53\x2D\x54\x2D\x55\x2D\x56\x2D\x5F\x2D\x60"
"\x2D\x61\x2D\x62\x2D\x63\x2D\x64\x2D\x65\x2D\x66\x2D\x67"
"\x2D\x68\x2D\x69\x2D\x6A\x2D\x6B\x2D\x6C\x2D\x6D\x2D\x6E"
"\x2D\x6F\x2D\x70\x2D\x71\x2D\x72\x2D\x73\x2D\x74\x2D\x75"
"\x2D\x76\x2D\x77\x2D\x78\x2D\x79\x2D\x7A\x2D\x7B\x2D\x7C"
"\x1B(B" ),
{ 0 x2460,0 x2461,0 x2462,0 x2463,0 x2464,0 x2465,0 x2466,0 x2467,0 x2468,
0 x2469,0 x246A,0 x246B,0 x246C,0 x246D,0 x246E,0 x246F,0 x2470,0 x2471,
0 x2472,0 x2473,0 x2160,0 x2161,0 x2162,0 x2163,0 x2164,0 x2165,0 x2166,
0 x2167,0 x2168,0 x2169,0 x3349,0 x3314,0 x3322,0 x334D,0 x3318,0 x3327,
0 x3303,0 x3336,0 x3351,0 x3357,0 x330D,0 x3326,0 x3323,0 x332B,0 x334A,
0 x333B,0 x339C,0 x339D,0 x339E,0 x338E,0 x338F,0 x33C4,0 x33A1,0 x337B,
0 x301D,0 x301F,0 x2116,0 x33CD,0 x2121,0 x32A4,0 x32A5,0 x32A6,0 x32A7,
0 x32A8,0 x3231,0 x3232,0 x3239,0 x337E,0 x337D,0 x337C,0 x2252,0 x2261,
0 x222B,0 x222E,0 x2211,0 x221A,0 x22A5,0 x2220,0 x221F,0 x22BF,0 x2235,
0 x2229,0 x222A },
83 ,
false ,
true ,
false ,
false ,
RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
{ RTL_TEXTENCODING_ISO_2022_JP,
RTL_CONSTASCII_STRINGPARAM(
"\x1B$B\x2D\x21\x2D\x22\x2D\x23\x2D\x24\x2D\x25\x2D\x26"
"\x2D\x27\x2D\x28\x2D\x29\x2D\x2A\x2D\x2B\x2D\x2C\x2D\x2D"
"\x2D\x2E\x2D\x2F\x2D\x30\x2D\x31\x2D\x32\x2D\x33\x2D\x34"
"\x2D\x35\x2D\x36\x2D\x37\x2D\x38\x2D\x39\x2D\x3A\x2D\x3B"
"\x2D\x3C\x2D\x3D\x2D\x3E\x2D\x40\x2D\x41\x2D\x42\x2D\x43"
"\x2D\x44\x2D\x45\x2D\x46\x2D\x47\x2D\x48\x2D\x49\x2D\x4A"
"\x2D\x4B\x2D\x4C\x2D\x4D\x2D\x4E\x2D\x4F\x2D\x50\x2D\x51"
"\x2D\x52\x2D\x53\x2D\x54\x2D\x55\x2D\x56\x2D\x5F\x2D\x60"
"\x2D\x61\x2D\x62\x2D\x63\x2D\x64\x2D\x65\x2D\x66\x2D\x67"
"\x2D\x68\x2D\x69\x2D\x6A\x2D\x6B\x2D\x6C\x2D\x6D\x2D\x6E"
"\x2D\x6F\x2D\x73\x2D\x74\x2D\x78\x2D\x79\x1B(B" ),
{ 0 x2460,0 x2461,0 x2462,0 x2463,0 x2464,0 x2465,0 x2466,0 x2467,0 x2468,
0 x2469,0 x246A,0 x246B,0 x246C,0 x246D,0 x246E,0 x246F,0 x2470,0 x2471,
0 x2472,0 x2473,0 x2160,0 x2161,0 x2162,0 x2163,0 x2164,0 x2165,0 x2166,
0 x2167,0 x2168,0 x2169,0 x3349,0 x3314,0 x3322,0 x334D,0 x3318,0 x3327,
0 x3303,0 x3336,0 x3351,0 x3357,0 x330D,0 x3326,0 x3323,0 x332B,0 x334A,
0 x333B,0 x339C,0 x339D,0 x339E,0 x338E,0 x338F,0 x33C4,0 x33A1,0 x337B,
0 x301D,0 x301F,0 x2116,0 x33CD,0 x2121,0 x32A4,0 x32A5,0 x32A6,0 x32A7,
0 x32A8,0 x3231,0 x3232,0 x3239,0 x337E,0 x337D,0 x337C,0 x222E,0 x2211,
0 x221F,0 x22BF },
74 ,
false ,
true ,
true ,
false ,
RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
{ RTL_TEXTENCODING_EUC_JP,
RTL_CONSTASCII_STRINGPARAM(
"\xAD\xA1\xAD\xA2\xAD\xA3\xAD\xA4\xAD\xA5\xAD\xA6\xAD\xA7"
"\xAD\xA8\xAD\xA9\xAD\xAA\xAD\xAB\xAD\xAC\xAD\xAD\xAD\xAE"
"\xAD\xAF\xAD\xB0\xAD\xB1\xAD\xB2\xAD\xB3\xAD\xB4\xAD\xB5"
"\xAD\xB6\xAD\xB7\xAD\xB8\xAD\xB9\xAD\xBA\xAD\xBB\xAD\xBC"
"\xAD\xBD\xAD\xBE\xAD\xC0\xAD\xC1\xAD\xC2\xAD\xC3\xAD\xC4"
"\xAD\xC5\xAD\xC6\xAD\xC7\xAD\xC8\xAD\xC9\xAD\xCA\xAD\xCB"
"\xAD\xCC\xAD\xCD\xAD\xCE\xAD\xCF\xAD\xD0\xAD\xD1\xAD\xD2"
"\xAD\xD3\xAD\xD4\xAD\xD5\xAD\xD6\xAD\xDF\xAD\xE0\xAD\xE1"
"\xAD\xE2\xAD\xE3\xAD\xE4\xAD\xE5\xAD\xE6\xAD\xE7\xAD\xE8"
"\xAD\xE9\xAD\xEA\xAD\xEB\xAD\xEC\xAD\xED\xAD\xEE\xAD\xEF"
"\xAD\xF0\xAD\xF1\xAD\xF2\xAD\xF3\xAD\xF4\xAD\xF5\xAD\xF6"
"\xAD\xF7\xAD\xF8\xAD\xF9\xAD\xFA\xAD\xFB\xAD\xFC" ),
{ 0 x2460,0 x2461,0 x2462,0 x2463,0 x2464,0 x2465,0 x2466,0 x2467,0 x2468,
0 x2469,0 x246A,0 x246B,0 x246C,0 x246D,0 x246E,0 x246F,0 x2470,0 x2471,
0 x2472,0 x2473,0 x2160,0 x2161,0 x2162,0 x2163,0 x2164,0 x2165,0 x2166,
0 x2167,0 x2168,0 x2169,0 x3349,0 x3314,0 x3322,0 x334D,0 x3318,0 x3327,
0 x3303,0 x3336,0 x3351,0 x3357,0 x330D,0 x3326,0 x3323,0 x332B,0 x334A,
0 x333B,0 x339C,0 x339D,0 x339E,0 x338E,0 x338F,0 x33C4,0 x33A1,0 x337B,
0 x301D,0 x301F,0 x2116,0 x33CD,0 x2121,0 x32A4,0 x32A5,0 x32A6,0 x32A7,
0 x32A8,0 x3231,0 x3232,0 x3239,0 x337E,0 x337D,0 x337C,0 x2252,0 x2261,
0 x222B,0 x222E,0 x2211,0 x221A,0 x22A5,0 x2220,0 x221F,0 x22BF,0 x2235,
0 x2229,0 x222A },
83 ,
true ,
true ,
false ,
false ,
RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
{ RTL_TEXTENCODING_EUC_JP,
RTL_CONSTASCII_STRINGPARAM(
"\xAD\xA1\xAD\xA2\xAD\xA3\xAD\xA4\xAD\xA5\xAD\xA6\xAD\xA7"
"\xAD\xA8\xAD\xA9\xAD\xAA\xAD\xAB\xAD\xAC\xAD\xAD\xAD\xAE"
"\xAD\xAF\xAD\xB0\xAD\xB1\xAD\xB2\xAD\xB3\xAD\xB4\xAD\xB5"
"\xAD\xB6\xAD\xB7\xAD\xB8\xAD\xB9\xAD\xBA\xAD\xBB\xAD\xBC"
"\xAD\xBD\xAD\xBE\xAD\xC0\xAD\xC1\xAD\xC2\xAD\xC3\xAD\xC4"
"\xAD\xC5\xAD\xC6\xAD\xC7\xAD\xC8\xAD\xC9\xAD\xCA\xAD\xCB"
"\xAD\xCC\xAD\xCD\xAD\xCE\xAD\xCF\xAD\xD0\xAD\xD1\xAD\xD2"
"\xAD\xD3\xAD\xD4\xAD\xD5\xAD\xD6\xAD\xDF\xAD\xE0\xAD\xE1"
"\xAD\xE2\xAD\xE3\xAD\xE4\xAD\xE5\xAD\xE6\xAD\xE7\xAD\xE8"
"\xAD\xE9\xAD\xEA\xAD\xEB\xAD\xEC\xAD\xED\xAD\xEE\xAD\xEF"
"\xAD\xF3\xAD\xF4\xAD\xF8\xAD\xF9" ),
{ 0 x2460,0 x2461,0 x2462,0 x2463,0 x2464,0 x2465,0 x2466,0 x2467,0 x2468,
0 x2469,0 x246A,0 x246B,0 x246C,0 x246D,0 x246E,0 x246F,0 x2470,0 x2471,
0 x2472,0 x2473,0 x2160,0 x2161,0 x2162,0 x2163,0 x2164,0 x2165,0 x2166,
0 x2167,0 x2168,0 x2169,0 x3349,0 x3314,0 x3322,0 x334D,0 x3318,0 x3327,
0 x3303,0 x3336,0 x3351,0 x3357,0 x330D,0 x3326,0 x3323,0 x332B,0 x334A,
0 x333B,0 x339C,0 x339D,0 x339E,0 x338E,0 x338F,0 x33C4,0 x33A1,0 x337B,
0 x301D,0 x301F,0 x2116,0 x33CD,0 x2121,0 x32A4,0 x32A5,0 x32A6,0 x32A7,
0 x32A8,0 x3231,0 x3232,0 x3239,0 x337E,0 x337D,0 x337C,0 x222E,0 x2211,
0 x221F,0 x22BF },
74 ,
true ,
true ,
true ,
false ,
RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
{ RTL_TEXTENCODING_EUC_JP,
RTL_CONSTASCII_STRINGPARAM("\xB9\xF5" ),
{ 0 x9ED2 },
1 ,
true ,
true ,
true ,
false ,
RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
#endif
// Test ISO-8859-x/MS-125x range 0x80--9F:
{ RTL_TEXTENCODING_ISO_8859_1,
RTL_CONSTASCII_STRINGPARAM(
"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E"
"\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D"
"\x9E\x9F" ),
{ 0 x0080,0 x0081,0 x0082,0 x0083,0 x0084,0 x0085,0 x0086,0 x0087,0 x0088,
0 x0089,0 x008A,0 x008B,0 x008C,0 x008D,0 x008E,0 x008F,0 x0090,0 x0091,
0 x0092,0 x0093,0 x0094,0 x0095,0 x0096,0 x0097,0 x0098,0 x0099,0 x009A,
0 x009B,0 x009C,0 x009D,0 x009E,0 x009F },
32 ,
true ,
true ,
true ,
false ,
RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
{ RTL_TEXTENCODING_ISO_8859_2,
RTL_CONSTASCII_STRINGPARAM(
"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E"
"\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D"
"\x9E\x9F" ),
{ 0 x0080,0 x0081,0 x0082,0 x0083,0 x0084,0 x0085,0 x0086,0 x0087,0 x0088,
0 x0089,0 x008A,0 x008B,0 x008C,0 x008D,0 x008E,0 x008F,0 x0090,0 x0091,
0 x0092,0 x0093,0 x0094,0 x0095,0 x0096,0 x0097,0 x0098,0 x0099,0 x009A,
0 x009B,0 x009C,0 x009D,0 x009E,0 x009F },
32 ,
true ,
true ,
true ,
false ,
RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
{ RTL_TEXTENCODING_ISO_8859_3,
RTL_CONSTASCII_STRINGPARAM(
"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E"
"\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D"
"\x9E\x9F" ),
{ 0 x0080,0 x0081,0 x0082,0 x0083,0 x0084,0 x0085,0 x0086,0 x0087,0 x0088,
0 x0089,0 x008A,0 x008B,0 x008C,0 x008D,0 x008E,0 x008F,0 x0090,0 x0091,
0 x0092,0 x0093,0 x0094,0 x0095,0 x0096,0 x0097,0 x0098,0 x0099,0 x009A,
0 x009B,0 x009C,0 x009D,0 x009E,0 x009F },
32 ,
true ,
true ,
true ,
false ,
RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
{ RTL_TEXTENCODING_ISO_8859_4,
RTL_CONSTASCII_STRINGPARAM(
"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E"
"\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D"
"\x9E\x9F" ),
{ 0 x0080,0 x0081,0 x0082,0 x0083,0 x0084,0 x0085,0 x0086,0 x0087,0 x0088,
0 x0089,0 x008A,0 x008B,0 x008C,0 x008D,0 x008E,0 x008F,0 x0090,0 x0091,
0 x0092,0 x0093,0 x0094,0 x0095,0 x0096,0 x0097,0 x0098,0 x0099,0 x009A,
0 x009B,0 x009C,0 x009D,0 x009E,0 x009F },
32 ,
true ,
true ,
true ,
false ,
RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
{ RTL_TEXTENCODING_ISO_8859_5,
RTL_CONSTASCII_STRINGPARAM(
"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E"
"\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D"
"\x9E\x9F" ),
{ 0 x0080,0 x0081,0 x0082,0 x0083,0 x0084,0 x0085,0 x0086,0 x0087,0 x0088,
0 x0089,0 x008A,0 x008B,0 x008C,0 x008D,0 x008E,0 x008F,0 x0090,0 x0091,
0 x0092,0 x0093,0 x0094,0 x0095,0 x0096,0 x0097,0 x0098,0 x0099,0 x009A,
0 x009B,0 x009C,0 x009D,0 x009E,0 x009F },
32 ,
true ,
true ,
true ,
false ,
RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
{ RTL_TEXTENCODING_ISO_8859_6,
RTL_CONSTASCII_STRINGPARAM(
"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E"
"\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D"
"\x9E\x9F" ),
{ 0 x0080,0 x0081,0 x0082,0 x0083,0 x0084,0 x0085,0 x0086,0 x0087,0 x0088,
0 x0089,0 x008A,0 x008B,0 x008C,0 x008D,0 x008E,0 x008F,0 x0090,0 x0091,
0 x0092,0 x0093,0 x0094,0 x0095,0 x0096,0 x0097,0 x0098,0 x0099,0 x009A,
0 x009B,0 x009C,0 x009D,0 x009E,0 x009F },
32 ,
true ,
true ,
true ,
false ,
RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
{ RTL_TEXTENCODING_ISO_8859_7,
RTL_CONSTASCII_STRINGPARAM(
"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E"
"\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D"
"\x9E\x9F" ),
{ 0 x0080,0 x0081,0 x0082,0 x0083,0 x0084,0 x0085,0 x0086,0 x0087,0 x0088,
0 x0089,0 x008A,0 x008B,0 x008C,0 x008D,0 x008E,0 x008F,0 x0090,0 x0091,
0 x0092,0 x0093,0 x0094,0 x0095,0 x0096,0 x0097,0 x0098,0 x0099,0 x009A,
0 x009B,0 x009C,0 x009D,0 x009E,0 x009F },
32 ,
true ,
true ,
true ,
false ,
RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
{ RTL_TEXTENCODING_ISO_8859_8,
RTL_CONSTASCII_STRINGPARAM(
"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E"
"\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D"
"\x9E\x9F" ),
{ 0 x0080,0 x0081,0 x0082,0 x0083,0 x0084,0 x0085,0 x0086,0 x0087,0 x0088,
0 x0089,0 x008A,0 x008B,0 x008C,0 x008D,0 x008E,0 x008F,0 x0090,0 x0091,
0 x0092,0 x0093,0 x0094,0 x0095,0 x0096,0 x0097,0 x0098,0 x0099,0 x009A,
0 x009B,0 x009C,0 x009D,0 x009E,0 x009F },
32 ,
true ,
true ,
true ,
false ,
RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
{ RTL_TEXTENCODING_ISO_8859_9,
RTL_CONSTASCII_STRINGPARAM(
"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E"
"\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D"
"\x9E\x9F" ),
{ 0 x0080,0 x0081,0 x0082,0 x0083,0 x0084,0 x0085,0 x0086,0 x0087,0 x0088,
0 x0089,0 x008A,0 x008B,0 x008C,0 x008D,0 x008E,0 x008F,0 x0090,0 x0091,
0 x0092,0 x0093,0 x0094,0 x0095,0 x0096,0 x0097,0 x0098,0 x0099,0 x009A,
0 x009B,0 x009C,0 x009D,0 x009E,0 x009F },
32 ,
true ,
true ,
true ,
false ,
RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
{ RTL_TEXTENCODING_ISO_8859_14,
RTL_CONSTASCII_STRINGPARAM(
"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E"
"\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D"
"\x9E\x9F" ),
{ 0 x0080,0 x0081,0 x0082,0 x0083,0 x0084,0 x0085,0 x0086,0 x0087,0 x0088,
0 x0089,0 x008A,0 x008B,0 x008C,0 x008D,0 x008E,0 x008F,0 x0090,0 x0091,
0 x0092,0 x0093,0 x0094,0 x0095,0 x0096,0 x0097,0 x0098,0 x0099,0 x009A,
0 x009B,0 x009C,0 x009D,0 x009E,0 x009F },
32 ,
true ,
true ,
true ,
false ,
RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
{ RTL_TEXTENCODING_ISO_8859_15,
RTL_CONSTASCII_STRINGPARAM(
"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E"
"\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D"
"\x9E\x9F" ),
{ 0 x0080,0 x0081,0 x0082,0 x0083,0 x0084,0 x0085,0 x0086,0 x0087,0 x0088,
0 x0089,0 x008A,0 x008B,0 x008C,0 x008D,0 x008E,0 x008F,0 x0090,0 x0091,
0 x0092,0 x0093,0 x0094,0 x0095,0 x0096,0 x0097,0 x0098,0 x0099,0 x009A,
0 x009B,0 x009C,0 x009D,0 x009E,0 x009F },
32 ,
true ,
true ,
true ,
false ,
RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
{ RTL_TEXTENCODING_MS_874,
RTL_CONSTASCII_STRINGPARAM("" ),
{ 0 x0080,0 x0081,0 x0082,0 x0083,0 x0084,0 x0085,0 x0086,0 x0087,0 x0088,
0 x0089,0 x008A,0 x008B,0 x008C,0 x008D,0 x008E,0 x008F,0 x0090,0 x0091,
0 x0092,0 x0093,0 x0094,0 x0095,0 x0096,0 x0097,0 x0098,0 x0099,0 x009A,
0 x009B,0 x009C,0 x009D,0 x009E,0 x009F },
32 ,
true ,
false ,
true ,
false ,
RTL_UNICODETOTEXT_FLAGS_UNDEFINED_IGNORE },
{ RTL_TEXTENCODING_MS_1250,
RTL_CONSTASCII_STRINGPARAM("" ),
{ 0 x0080,0 x0081,0 x0082,0 x0083,0 x0084,0 x0085,0 x0086,0 x0087,0 x0088,
0 x0089,0 x008A,0 x008B,0 x008C,0 x008D,0 x008E,0 x008F,0 x0090,0 x0091,
0 x0092,0 x0093,0 x0094,0 x0095,0 x0096,0 x0097,0 x0098,0 x0099,0 x009A,
0 x009B,0 x009C,0 x009D,0 x009E,0 x009F },
32 ,
true ,
false ,
true ,
false ,
RTL_UNICODETOTEXT_FLAGS_UNDEFINED_IGNORE },
{ RTL_TEXTENCODING_MS_1251,
RTL_CONSTASCII_STRINGPARAM("" ),
{ 0 x0080,0 x0081,0 x0082,0 x0083,0 x0084,0 x0085,0 x0086,0 x0087,0 x0088,
0 x0089,0 x008A,0 x008B,0 x008C,0 x008D,0 x008E,0 x008F,0 x0090,0 x0091,
0 x0092,0 x0093,0 x0094,0 x0095,0 x0096,0 x0097,0 x0098,0 x0099,0 x009A,
0 x009B,0 x009C,0 x009D,0 x009E,0 x009F },
32 ,
true ,
false ,
true ,
false ,
RTL_UNICODETOTEXT_FLAGS_UNDEFINED_IGNORE },
{ RTL_TEXTENCODING_MS_1252,
RTL_CONSTASCII_STRINGPARAM("" ),
{ 0 x0080,0 x0081,0 x0082,0 x0083,0 x0084,0 x0085,0 x0086,0 x0087,0 x0088,
0 x0089,0 x008A,0 x008B,0 x008C,0 x008D,0 x008E,0 x008F,0 x0090,0 x0091,
0 x0092,0 x0093,0 x0094,0 x0095,0 x0096,0 x0097,0 x0098,0 x0099,0 x009A,
0 x009B,0 x009C,0 x009D,0 x009E,0 x009F },
32 ,
true ,
false ,
true ,
false ,
RTL_UNICODETOTEXT_FLAGS_UNDEFINED_IGNORE },
{ RTL_TEXTENCODING_MS_1253,
RTL_CONSTASCII_STRINGPARAM("" ),
{ 0 x0080,0 x0081,0 x0082,0 x0083,0 x0084,0 x0085,0 x0086,0 x0087,0 x0088,
0 x0089,0 x008A,0 x008B,0 x008C,0 x008D,0 x008E,0 x008F,0 x0090,0 x0091,
0 x0092,0 x0093,0 x0094,0 x0095,0 x0096,0 x0097,0 x0098,0 x0099,0 x009A,
0 x009B,0 x009C,0 x009D,0 x009E,0 x009F },
32 ,
true ,
false ,
true ,
false ,
RTL_UNICODETOTEXT_FLAGS_UNDEFINED_IGNORE },
{ RTL_TEXTENCODING_MS_1254,
RTL_CONSTASCII_STRINGPARAM("" ),
{ 0 x0080,0 x0081,0 x0082,0 x0083,0 x0084,0 x0085,0 x0086,0 x0087,0 x0088,
0 x0089,0 x008A,0 x008B,0 x008C,0 x008D,0 x008E,0 x008F,0 x0090,0 x0091,
0 x0092,0 x0093,0 x0094,0 x0095,0 x0096,0 x0097,0 x0098,0 x0099,0 x009A,
0 x009B,0 x009C,0 x009D,0 x009E,0 x009F },
32 ,
true ,
false ,
true ,
false ,
RTL_UNICODETOTEXT_FLAGS_UNDEFINED_IGNORE },
{ RTL_TEXTENCODING_MS_1255,
RTL_CONSTASCII_STRINGPARAM("" ),
{ 0 x0080,0 x0081,0 x0082,0 x0083,0 x0084,0 x0085,0 x0086,0 x0087,0 x0088,
0 x0089,0 x008A,0 x008B,0 x008C,0 x008D,0 x008E,0 x008F,0 x0090,0 x0091,
0 x0092,0 x0093,0 x0094,0 x0095,0 x0096,0 x0097,0 x0098,0 x0099,0 x009A,
0 x009B,0 x009C,0 x009D,0 x009E,0 x009F },
32 ,
true ,
false ,
true ,
false ,
RTL_UNICODETOTEXT_FLAGS_UNDEFINED_IGNORE },
{ RTL_TEXTENCODING_MS_1256,
RTL_CONSTASCII_STRINGPARAM("" ),
{ 0 x0080,0 x0081,0 x0082,0 x0083,0 x0084,0 x0085,0 x0086,0 x0087,0 x0088,
0 x0089,0 x008A,0 x008B,0 x008C,0 x008D,0 x008E,0 x008F,0 x0090,0 x0091,
0 x0092,0 x0093,0 x0094,0 x0095,0 x0096,0 x0097,0 x0098,0 x0099,0 x009A,
0 x009B,0 x009C,0 x009D,0 x009E,0 x009F },
32 ,
true ,
false ,
true ,
false ,
RTL_UNICODETOTEXT_FLAGS_UNDEFINED_IGNORE },
{ RTL_TEXTENCODING_MS_1257,
RTL_CONSTASCII_STRINGPARAM("" ),
{ 0 x0080,0 x0081,0 x0082,0 x0083,0 x0084,0 x0085,0 x0086,0 x0087,0 x0088,
0 x0089,0 x008A,0 x008B,0 x008C,0 x008D,0 x008E,0 x008F,0 x0090,0 x0091,
0 x0092,0 x0093,0 x0094,0 x0095,0 x0096,0 x0097,0 x0098,0 x0099,0 x009A,
0 x009B,0 x009C,0 x009D,0 x009E,0 x009F },
32 ,
true ,
false ,
true ,
false ,
RTL_UNICODETOTEXT_FLAGS_UNDEFINED_IGNORE },
{ RTL_TEXTENCODING_MS_1258,
RTL_CONSTASCII_STRINGPARAM("" ),
{ 0 x0080,0 x0081,0 x0082,0 x0083,0 x0084,0 x0085,0 x0086,0 x0087,0 x0088,
0 x0089,0 x008A,0 x008B,0 x008C,0 x008D,0 x008E,0 x008F,0 x0090,0 x0091,
0 x0092,0 x0093,0 x0094,0 x0095,0 x0096,0 x0097,0 x0098,0 x0099,0 x009A,
0 x009B,0 x009C,0 x009D,0 x009E,0 x009F },
32 ,
true ,
false ,
true ,
false ,
RTL_UNICODETOTEXT_FLAGS_UNDEFINED_IGNORE },
{ RTL_TEXTENCODING_MS_949,
RTL_CONSTASCII_STRINGPARAM(
"\xB0\xA1\xB0\xA2\x81\x41\x81\x42\xB0\xA3\x81\x43\x81\x44"
"\xB0\xA4\xB0\xA5\xB0\xA6\xB0\xA7\x81\x45\x81\x46\x81\x47"
"\x81\x48\x81\x49\xB0\xA8\xB0\xA9\xB0\xAA\xB0\xAB\xB0\xAC"
"\xB0\xAD\xB0\xAE\xB0\xAF\x81\x4A\xB0\xB0\xB0\xB1\xB0\xB2" ),
{ 0 xAC00,0 xAC01,0 xAC02,0 xAC03,0 xAC04,0 xAC05,0 xAC06,0 xAC07,0 xAC08,
0 xAC09,0 xAC0A,0 xAC0B,0 xAC0C,0 xAC0D,0 xAC0E,0 xAC0F,0 xAC10,0 xAC11,
0 xAC12,0 xAC13,0 xAC14,0 xAC15,0 xAC16,0 xAC17,0 xAC18,0 xAC19,0 xAC1A,
0 xAC1B },
28 ,
true ,
true ,
true ,
false ,
RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
{ RTL_TEXTENCODING_MS_949,
RTL_CONSTASCII_STRINGPARAM(
"\xC9\xA1\xC9\xA2\xC9\xA3\xC9\xFC\xC9\xFD\xC9\xFE"
"\xFE\xA1\xFE\xA2\xFE\xA3\xFE\xFC\xFE\xFD\xFE\xFE" ),
{ 0 xE000,0 xE001,0 xE002,0 xE05B,0 xE05C,0 xE05D,
0 xE05E,0 xE05F,0 xE060,0 xE0B9,0 xE0BA,0 xE0BB },
12 ,
true ,
true ,
true ,
false ,
RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
#if WITH_LOCALE_ALL || WITH_LOCALE_ko
{ RTL_TEXTENCODING_EUC_KR,
RTL_CONSTASCII_STRINGPARAM(
"\xB0\xA1\xB0\xA2" "\xB0\xA3"
"\xB0\xA4\xB0\xA5\xB0\xA6\xB0\xA7"
"\xB0\xA8\xB0\xA9\xB0\xAA\xB0\xAB\xB0\xAC"
"\xB0\xAD\xB0\xAE\xB0\xAF" "\xB0\xB0\xB0\xB1\xB0\xB2" ),
{ 0 xAC00,0 xAC01, 0 xAC04, 0 xAC07,0 xAC08,
0 xAC09,0 xAC0A, 0 xAC10,0 xAC11,
0 xAC12,0 xAC13,0 xAC14,0 xAC15,0 xAC16,0 xAC17, 0 xAC19,0 xAC1A,
0 xAC1B },
18 ,
true ,
true ,
true ,
false ,
RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
{ RTL_TEXTENCODING_EUC_KR,
RTL_CONSTASCII_STRINGPARAM(
"\xB0\xA1\xB0\xA2" "\xB0\xA3"
"\xB0\xA4\xB0\xA5\xB0\xA6\xB0\xA7"
"\xB0\xA8\xB0\xA9\xB0\xAA\xB0\xAB\xB0\xAC"
"\xB0\xAD\xB0\xAE\xB0\xAF" "\xB0\xB0\xB0\xB1\xB0\xB2" ),
{ 0 xAC00,0 xAC01,0 xAC02,0 xAC03,0 xAC04,0 xAC05,0 xAC06,0 xAC07,0 xAC08,
0 xAC09,0 xAC0A,0 xAC0B,0 xAC0C,0 xAC0D,0 xAC0E,0 xAC0F,0 xAC10,0 xAC11,
0 xAC12,0 xAC13,0 xAC14,0 xAC15,0 xAC16,0 xAC17,0 xAC18,0 xAC19,0 xAC1A,
0 xAC1B },
28 ,
true ,
false ,
true ,
false ,
RTL_UNICODETOTEXT_FLAGS_UNDEFINED_IGNORE },
{ RTL_TEXTENCODING_EUC_KR,
RTL_CONSTASCII_STRINGPARAM(
"\xC9\xA1\xC9\xA2\xC9\xA3\xC9\xFC\xC9\xFD\xC9\xFE"
"\xFE\xA1\xFE\xA2\xFE\xA3\xFE\xFC\xFE\xFD\xFE\xFE" ),
{ 0 xE000,0 xE001,0 xE002,0 xE05B,0 xE05C,0 xE05D,
0 xE05E,0 xE05F,0 xE060,0 xE0B9,0 xE0BA,0 xE0BB },
12 ,
true ,
true ,
true ,
false ,
RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
#endif
// Test UTF-8:
{ RTL_TEXTENCODING_UTF8,
RTL_CONSTASCII_STRINGPARAM("\x00" ),
{ 0 x0000 },
1 ,
false ,
true ,
true ,
false ,
RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
{ RTL_TEXTENCODING_UTF8,
RTL_CONSTASCII_STRINGPARAM("\xEF\xBB\xBF" ),
{ 0 xFEFF },
1 ,
false ,
true ,
true ,
false ,
RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
{ RTL_TEXTENCODING_UTF8,
RTL_CONSTASCII_STRINGPARAM("\xEF\xBB\xBF\xEF\xBB\xBF" ),
{ 0 xFEFF,0 xFEFF },
2 ,
false ,
true ,
true ,
false ,
RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
{ RTL_TEXTENCODING_UTF8,
RTL_CONSTASCII_STRINGPARAM("\xEF\xBB\xBF" ),
{ 0 },
0 ,
false ,
true ,
true ,
true ,
RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
{ RTL_TEXTENCODING_UTF8,
RTL_CONSTASCII_STRINGPARAM("\xEF\xBB\xBF\xEF\xBB\xBF" ),
{ 0 xFEFF },
1 ,
false ,
true ,
true ,
true ,
RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
{ RTL_TEXTENCODING_UTF8,
RTL_CONSTASCII_STRINGPARAM("\x01\x02\x7E\x7F" ),
{ 0 x0001,0 x0002,0 x007E,0 x007F },
4 ,
false ,
true ,
true ,
false ,
RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
{ RTL_TEXTENCODING_UTF8,
RTL_CONSTASCII_STRINGPARAM("\xEF\xBF\xBF" ),
{0 xFFFF},
1 ,
false ,
true ,
true ,
false ,
RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
// Test Java UTF-8:
{ RTL_TEXTENCODING_JAVA_UTF8,
RTL_CONSTASCII_STRINGPARAM(
"\xEF\xBB\xBF\xC0\x80\x01\x20\x41\x7F\xED\xA0\x80"
"\xED\xB0\x80" ),
{ 0 xFEFF,0 x0000,0 x0001,0 x0020,0 x0041,0 x007F,0 xD800,0 xDC00 },
8 ,
false ,
true ,
true ,
true ,
RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
#if WITH_LOCALE_ALL || WITH_LOCALE_ja
// Bug #112949#:
{ RTL_TEXTENCODING_SHIFT_JIS,
RTL_CONSTASCII_STRINGPARAM("\x81\x63" ),
{ 0 x2026 },
1 ,
false ,
true ,
true ,
false ,
RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
{ RTL_TEXTENCODING_SHIFT_JIS,
RTL_CONSTASCII_STRINGPARAM("\xA0\xFD\xFE\xFF" ),
{ 0 x00A0, 0 x00A9, 0 x2122, 0 x2026 },
4 ,
false ,
true ,
false ,
false ,
RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
{ RTL_TEXTENCODING_SHIFT_JIS,
RTL_CONSTASCII_STRINGPARAM("" ),
{ 0 x00A0, 0 x00A9, 0 x2122 },
3 ,
false ,
false ,
true ,
false ,
RTL_UNICODETOTEXT_FLAGS_UNDEFINED_IGNORE },
#endif
{ RTL_TEXTENCODING_MS_932,
RTL_CONSTASCII_STRINGPARAM("\x81\x63" ),
{ 0 x2026 },
1 ,
false ,
true ,
true ,
false ,
RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
{ RTL_TEXTENCODING_MS_932,
RTL_CONSTASCII_STRINGPARAM("\xA0\xFD\xFE\xFF" ),
{ 0 x00A0, 0 x00A9, 0 x2122, 0 x2026 },
4 ,
false ,
true ,
false ,
false ,
RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
{ RTL_TEXTENCODING_MS_932,
RTL_CONSTASCII_STRINGPARAM("" ),
{ 0 x00A0, 0 x00A9, 0 x2122 },
3 ,
false ,
false ,
true ,
false ,
RTL_UNICODETOTEXT_FLAGS_UNDEFINED_IGNORE },
{ RTL_TEXTENCODING_APPLE_JAPANESE,
RTL_CONSTASCII_STRINGPARAM("\xA0\xFD\xFE\x81\x63" ),
{ 0 x00A0, 0 x00A9, 0 x2122, 0 x2026 },
4 ,
false ,
true ,
true ,
false ,
RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
{ RTL_TEXTENCODING_APPLE_JAPANESE,
RTL_CONSTASCII_STRINGPARAM("\xFF" ),
{ 0 x2026 },
1 ,
false ,
true ,
false ,
false ,
RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
{ RTL_TEXTENCODING_ADOBE_STANDARD,
RTL_CONSTASCII_STRINGPARAM("\x20\x2D\xA4\xB4\xC5" ),
{ 0 x0020, 0 x002D, 0 x2215, 0 x00B7, 0 x00AF },
5 ,
false ,
true ,
true ,
false ,
RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
{ RTL_TEXTENCODING_ADOBE_STANDARD,
RTL_CONSTASCII_STRINGPARAM("\x20\x2D\xA4\xB4\xC5" ),
{ 0 x00A0, 0 x00AD, 0 x2044, 0 x2219, 0 x02C9 },
5 ,
false ,
false ,
true ,
false ,
RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
{ RTL_TEXTENCODING_ADOBE_SYMBOL,
RTL_CONSTASCII_STRINGPARAM("\x20\x44\x57\x6D\xA4" ),
{ 0 x0020, 0 x0394, 0 x03A9, 0 x03BC, 0 x2215 },
5 ,
false ,
true ,
true ,
false ,
RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
{ RTL_TEXTENCODING_ADOBE_SYMBOL,
RTL_CONSTASCII_STRINGPARAM("\x20\x44\x57\x6D\xA4" ),
{ 0 x00A0, 0 x2206, 0 x2126, 0 x00B5, 0 x2044 },
5 ,
false ,
false ,
true ,
false ,
RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
#if WITH_LOCALE_ALL || WITH_LOCALE_ja
// Bug #i62310#:
{ RTL_TEXTENCODING_SHIFT_JIS,
RTL_CONSTASCII_STRINGPARAM(
"\xF0\x40\xF0\x7E\xF0\x80\xF0\xFC\xF1\x40\xF9\xFC" ),
{ 0 xE000, 0 xE03E, 0 xE03F, 0 xE0BB, 0 xE0BC, 0 xE757 },
6 ,
true ,
true ,
true ,
false ,
RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
#endif
// Bug #i73103#:
{ RTL_TEXTENCODING_MS_1258,
RTL_CONSTASCII_STRINGPARAM(
"\xC0\x41\xDE\xE3\xD2\xD4\xEC\xFD\xF2" ),
{ 0 x00C0, 0 x0041, 0 x0303, 0 x0103, 0 x0309, 0 x00D4, 0 x0301, 0 x01B0,
0 x0323 },
9 ,
true ,
true ,
true ,
false ,
RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
{ RTL_TEXTENCODING_MS_1258,
RTL_CONSTASCII_STRINGPARAM(
"\xC0\x41\xDE\xE3\xD2\xD4\xEC\xFD\xF2" ),
{ 0 x00C0, 0 x00C3, 0 x1EB3, 0 x1ED0, 0 x1EF1 },
5 ,
false ,
false ,
true ,
false ,
RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
#if WITH_LOCALE_ALL || WITH_LOCALE_FOR_SCRIPT_Deva
{ RTL_TEXTENCODING_ISCII_DEVANAGARI,
RTL_CONSTASCII_STRINGPARAM(
"\xD7\xE6\x20\xD4\xCF\xE8\xD6\x20"
"\xC8\xD8\xD1\xE1\x20\xB3\xCA\xDC"
"\xCF\xC4\xDA\xD7\x20\xD8\xDB\xA2"
"\xC4\xDE\x20\xB1\xCF\x20\xCC\xDD"
"\xD7\xD1\xCC\xDA\xC6\x20\xC4\xE5"
"\xC6\xE5\xA2\x20\xB3\xE1\x20\xB3"
"\xBD\xE8\xBD\xCF\xC8\xC6\x20\xB3"
"\xE5\x20\xC9\xBD\xB3\xDA\xCF\x20"
"\xB8\xDD\xB3\xE1\x20\xC3\xE1\x20"
"\xEA" ),
{ 0 x0938, 0 x094C, 0 x0020, 0 x0935, 0 x0930, 0 x094D, 0 x0937, 0 x0020,
0 x092A, 0 x0939, 0 x0932, 0 x0947, 0 x0020, 0 x0915, 0 x092C, 0 x0940,
0 x0930, 0 x0926, 0 x093E, 0 x0938, 0 x0020, 0 x0939, 0 x093F, 0 x0902,
0 x0926, 0 x0942, 0 x0020, 0 x0914, 0 x0930, 0 x0020, 0 x092E, 0 x0941,
0 x0938, 0 x0932, 0 x092E, 0 x093E, 0 x0928, 0 x0020, 0 x0926, 0 x094B,
0 x0928, 0 x094B, 0 x0902, 0 x0020, 0 x0915, 0 x0947, 0 x0020, 0 x0915,
0 x091F, 0 x094D, 0 x091F, 0 x0930, 0 x092A, 0 x0928, 0 x0020, 0 x0915,
0 x094B, 0 x0020, 0 x092B, 0 x091F, 0 x0915, 0 x093E, 0 x0930, 0 x0020,
0 x091A, 0 x0941, 0 x0915, 0 x0947, 0 x0020, 0 x0925, 0 x0947, 0 x0020,
0 x0964 },
73 ,
false ,
true ,
true ,
false ,
RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
{ RTL_TEXTENCODING_ISCII_DEVANAGARI,
RTL_CONSTASCII_STRINGPARAM("\xE8\xE8\xE8\xE9\xA1\xE9\xEA\xE9" ),
{ 0 x094D, 0 x200C, 0 x094D, 0 x200D, 0 x0950, 0 x93D },
6 ,
false ,
true ,
true ,
false ,
RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR }
#endif
};
for (auto const & aDatum : data)
{
doComplexCharSetTest(aDatum);
}
}
void Test::testComplexCut() {
#if WITH_LOCALE_ALL || WITH_LOCALE_ja || WITH_LOCALE_zh
static ComplexCharSetTest const data[]
= {
#if WITH_LOCALE_ALL || WITH_LOCALE_ja
{ RTL_TEXTENCODING_EUC_JP,
RTL_CONSTASCII_STRINGPARAM("\xA1" ),
{ 0 },
0 ,
true ,
true ,
false ,
false ,
RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
{ RTL_TEXTENCODING_EUC_JP,
RTL_CONSTASCII_STRINGPARAM("\x8E" ),
{ 0 },
0 ,
true ,
true ,
false ,
false ,
RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
{ RTL_TEXTENCODING_EUC_JP,
RTL_CONSTASCII_STRINGPARAM("\x8F" ),
{ 0 },
0 ,
true ,
true ,
false ,
false ,
RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
{ RTL_TEXTENCODING_EUC_JP,
RTL_CONSTASCII_STRINGPARAM("\x8F\xA1" ),
{ 0 },
0 ,
true ,
true ,
false ,
false ,
RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
#endif
#if WITH_LOCALE_ALL || WITH_LOCALE_zh
{ RTL_TEXTENCODING_EUC_CN,
RTL_CONSTASCII_STRINGPARAM("\xA1" ),
{ 0 },
0 ,
true ,
true ,
false ,
false ,
RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
#endif
/* ,
{ RTL_TEXTENCODING_EUC_TW,
RTL_CONSTASCII_STRINGPARAM("\xA1"),
{ 0 },
0,
true,
true,
false,
false,
RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
{ RTL_TEXTENCODING_EUC_TW,
RTL_CONSTASCII_STRINGPARAM("\x8E"),
{ 0 },
0,
true,
true,
false,
false,
RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
{ RTL_TEXTENCODING_EUC_TW,
RTL_CONSTASCII_STRINGPARAM("\x8E\xA1"),
{ 0 },
0,
true,
true,
false,
false,
RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR },
{ RTL_TEXTENCODING_EUC_TW,
RTL_CONSTASCII_STRINGPARAM("\x8E\xA1\xA1"),
{ 0 },
0,
true,
true,
false,
false,
RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR } */
for (auto const & aDatum : data)
{
doComplexCharSetCutTest(aDatum);
}
#endif
}
void Test::testInvalidUtf7() {
auto const converter = rtl_createTextToUnicodeConverter(RTL_TEXTENCODING_UTF7);
CPPUNIT_ASSERT(converter != nullptr);
sal_Unicode buf[TEST_STRING_SIZE];
sal_uInt32 info;
sal_Size converted;
auto const size = rtl_convertTextToUnicode(
converter, nullptr, RTL_CONSTASCII_STRINGPARAM("\x80" ), buf, TEST_STRING_SIZE,
(RTL_TEXTTOUNICODE_FLAGS_UNDEFINED_ERROR | RTL_TEXTTOUNICODE_FLAGS_MBUNDEFINED_ERROR
| RTL_TEXTTOUNICODE_FLAGS_INVALID_DEFAULT | RTL_TEXTTOUNICODE_FLAGS_FLUSH),
&info, &converted);
CPPUNIT_ASSERT_EQUAL(sal_Size(1 ), size);
CPPUNIT_ASSERT_EQUAL(u"\uFFFD" _ustr, OUString(buf, sal_Int32(size)));
CPPUNIT_ASSERT_EQUAL(RTL_TEXTTOUNICODE_INFO_INVALID, info);
CPPUNIT_ASSERT_EQUAL(sal_Size(1 ), converted);
rtl_destroyTextToUnicodeConverter(converter);
}
void Test::testInvalidUtf8() {
// UTF-8, invalid bytes:
{
auto const converter = rtl_createTextToUnicodeConverter(
RTL_TEXTENCODING_UTF8);
CPPUNIT_ASSERT(converter != nullptr);
sal_Unicode buf[TEST_STRING_SIZE];
sal_uInt32 info;
sal_Size converted;
auto const size = rtl_convertTextToUnicode(
converter, nullptr, RTL_CONSTASCII_STRINGPARAM("\x80\xBF\xFE\xFF" ),
buf, TEST_STRING_SIZE,
(RTL_TEXTTOUNICODE_FLAGS_UNDEFINED_ERROR
| RTL_TEXTTOUNICODE_FLAGS_MBUNDEFINED_ERROR
| RTL_TEXTTOUNICODE_FLAGS_INVALID_DEFAULT
| RTL_TEXTTOUNICODE_FLAGS_FLUSH),
&info, &converted);
CPPUNIT_ASSERT_EQUAL(sal_Size(4 ), size);
CPPUNIT_ASSERT_EQUAL(
u"\uFFFD\uFFFD\uFFFD\uFFFD" _ustr,
OUString(buf, sal_Int32(size)));
CPPUNIT_ASSERT_EQUAL(RTL_TEXTTOUNICODE_INFO_INVALID, info);
CPPUNIT_ASSERT_EQUAL(sal_Size(4 ), converted);
rtl_destroyTextToUnicodeConverter(converter);
}
// UTF-8, non-shortest two-byte sequence:
{
auto const converter = rtl_createTextToUnicodeConverter(
RTL_TEXTENCODING_UTF8);
CPPUNIT_ASSERT(converter != nullptr);
sal_Unicode buf[TEST_STRING_SIZE];
sal_uInt32 info;
sal_Size converted;
auto const size = rtl_convertTextToUnicode(
converter, nullptr, RTL_CONSTASCII_STRINGPARAM("\xC0\x80" ),
buf, TEST_STRING_SIZE,
(RTL_TEXTTOUNICODE_FLAGS_UNDEFINED_ERROR
| RTL_TEXTTOUNICODE_FLAGS_MBUNDEFINED_ERROR
| RTL_TEXTTOUNICODE_FLAGS_INVALID_DEFAULT
| RTL_TEXTTOUNICODE_FLAGS_FLUSH),
&info, &converted);
CPPUNIT_ASSERT_EQUAL(sal_Size(1 ), size);
CPPUNIT_ASSERT_EQUAL(
u"\uFFFD" _ustr, OUString(buf, sal_Int32(size)));
CPPUNIT_ASSERT_EQUAL(RTL_TEXTTOUNICODE_INFO_INVALID, info);
CPPUNIT_ASSERT_EQUAL(sal_Size(2 ), converted);
rtl_destroyTextToUnicodeConverter(converter);
}
// UTF-8, cut two-byte sequence:
{
auto const converter = rtl_createTextToUnicodeConverter(
RTL_TEXTENCODING_UTF8);
CPPUNIT_ASSERT(converter != nullptr);
sal_Unicode buf[TEST_STRING_SIZE];
sal_uInt32 info;
sal_Size converted;
auto const size = rtl_convertTextToUnicode(
converter, nullptr, RTL_CONSTASCII_STRINGPARAM("\xC0" ), buf,
TEST_STRING_SIZE,
(RTL_TEXTTOUNICODE_FLAGS_UNDEFINED_ERROR
| RTL_TEXTTOUNICODE_FLAGS_MBUNDEFINED_ERROR
| RTL_TEXTTOUNICODE_FLAGS_INVALID_ERROR),
&info, &converted);
CPPUNIT_ASSERT_EQUAL(sal_Size(0 ), size);
CPPUNIT_ASSERT_EQUAL(RTL_TEXTTOUNICODE_INFO_SRCBUFFERTOSMALL, info);
CPPUNIT_ASSERT(converted <= 1 );
rtl_destroyTextToUnicodeConverter(converter);
}
// UTF-8, non-shortest three-byte sequence:
{
auto const converter = rtl_createTextToUnicodeConverter(
RTL_TEXTENCODING_UTF8);
CPPUNIT_ASSERT(converter != nullptr);
sal_Unicode buf[TEST_STRING_SIZE];
sal_uInt32 info;
sal_Size converted;
auto const size = rtl_convertTextToUnicode(
converter, nullptr, RTL_CONSTASCII_STRINGPARAM("\xE0\x9F\xBF" ),
buf, TEST_STRING_SIZE,
(RTL_TEXTTOUNICODE_FLAGS_UNDEFINED_ERROR
| RTL_TEXTTOUNICODE_FLAGS_MBUNDEFINED_ERROR
| RTL_TEXTTOUNICODE_FLAGS_INVALID_DEFAULT
| RTL_TEXTTOUNICODE_FLAGS_FLUSH),
&info, &converted);
CPPUNIT_ASSERT_EQUAL(sal_Size(1 ), size);
CPPUNIT_ASSERT_EQUAL(
u"\uFFFD" _ustr, OUString(buf, sal_Int32(size)));
CPPUNIT_ASSERT_EQUAL(RTL_TEXTTOUNICODE_INFO_INVALID, info);
CPPUNIT_ASSERT_EQUAL(sal_Size(3 ), converted);
rtl_destroyTextToUnicodeConverter(converter);
}
// UTF-8, cut three-byte sequence:
{
auto const converter = rtl_createTextToUnicodeConverter(
RTL_TEXTENCODING_UTF8);
CPPUNIT_ASSERT(converter != nullptr);
sal_Unicode buf[TEST_STRING_SIZE];
sal_uInt32 info;
sal_Size converted;
auto const size = rtl_convertTextToUnicode(
converter, nullptr, RTL_CONSTASCII_STRINGPARAM("\xE0\x80" ), buf,
TEST_STRING_SIZE,
(RTL_TEXTTOUNICODE_FLAGS_UNDEFINED_ERROR
| RTL_TEXTTOUNICODE_FLAGS_MBUNDEFINED_ERROR
| RTL_TEXTTOUNICODE_FLAGS_INVALID_ERROR),
&info, &converted);
CPPUNIT_ASSERT_EQUAL(sal_Size(0 ), size);
CPPUNIT_ASSERT_EQUAL(RTL_TEXTTOUNICODE_INFO_SRCBUFFERTOSMALL, info);
CPPUNIT_ASSERT(converted <= 2 );
rtl_destroyTextToUnicodeConverter(converter);
}
// UTF-8, cut three-byte sequence followed by more:
{
auto const converter = rtl_createTextToUnicodeConverter(
RTL_TEXTENCODING_UTF8);
CPPUNIT_ASSERT(converter != nullptr);
sal_Unicode buf[TEST_STRING_SIZE];
sal_uInt32 info;
sal_Size converted;
auto const size = rtl_convertTextToUnicode(
converter, nullptr, RTL_CONSTASCII_STRINGPARAM("\xE0\x80." ), buf,
TEST_STRING_SIZE,
(RTL_TEXTTOUNICODE_FLAGS_UNDEFINED_ERROR
| RTL_TEXTTOUNICODE_FLAGS_MBUNDEFINED_ERROR
| RTL_TEXTTOUNICODE_FLAGS_INVALID_DEFAULT
| RTL_TEXTTOUNICODE_FLAGS_FLUSH),
&info, &converted);
CPPUNIT_ASSERT_EQUAL(sal_Size(2 ), size);
CPPUNIT_ASSERT_EQUAL(
u"\uFFFD." _ustr, OUString(buf, sal_Int32(size)));
CPPUNIT_ASSERT_EQUAL(RTL_TEXTTOUNICODE_INFO_INVALID, info);
CPPUNIT_ASSERT_EQUAL(sal_Size(3 ), converted);
rtl_destroyTextToUnicodeConverter(converter);
}
// UTF-8, surrogates:
{
auto const converter = rtl_createTextToUnicodeConverter(
RTL_TEXTENCODING_UTF8);
CPPUNIT_ASSERT(converter != nullptr);
sal_Unicode buf[TEST_STRING_SIZE];
sal_uInt32 info;
sal_Size converted;
auto const size = rtl_convertTextToUnicode(
converter, nullptr,
RTL_CONSTASCII_STRINGPARAM("\xED\xA0\x80\xED\xB0\x80" ), buf,
TEST_STRING_SIZE,
(RTL_TEXTTOUNICODE_FLAGS_UNDEFINED_ERROR
| RTL_TEXTTOUNICODE_FLAGS_MBUNDEFINED_ERROR
| RTL_TEXTTOUNICODE_FLAGS_INVALID_DEFAULT
| RTL_TEXTTOUNICODE_FLAGS_FLUSH),
&info, &converted);
CPPUNIT_ASSERT_EQUAL(sal_Size(2 ), size);
CPPUNIT_ASSERT_EQUAL(
u"\uFFFD\uFFFD" _ustr, OUString(buf, sal_Int32(size)));
CPPUNIT_ASSERT_EQUAL(RTL_TEXTTOUNICODE_INFO_INVALID, info);
CPPUNIT_ASSERT_EQUAL(sal_Size(6 ), converted);
rtl_destroyTextToUnicodeConverter(converter);
}
// UTF-8, non-shortest four-byte sequence:
{
auto const converter = rtl_createTextToUnicodeConverter(
RTL_TEXTENCODING_UTF8);
CPPUNIT_ASSERT(converter != nullptr);
sal_Unicode buf[TEST_STRING_SIZE];
sal_uInt32 info;
sal_Size converted;
auto const size = rtl_convertTextToUnicode(
converter, nullptr, RTL_CONSTASCII_STRINGPARAM("\xF0\x8F\xBF\xBF" ),
buf, TEST_STRING_SIZE,
(RTL_TEXTTOUNICODE_FLAGS_UNDEFINED_ERROR
| RTL_TEXTTOUNICODE_FLAGS_MBUNDEFINED_ERROR
| RTL_TEXTTOUNICODE_FLAGS_INVALID_DEFAULT
| RTL_TEXTTOUNICODE_FLAGS_FLUSH),
&info, &converted);
CPPUNIT_ASSERT_EQUAL(sal_Size(1 ), size);
CPPUNIT_ASSERT_EQUAL(
u"\uFFFD" _ustr, OUString(buf, sal_Int32(size)));
CPPUNIT_ASSERT_EQUAL(RTL_TEXTTOUNICODE_INFO_INVALID, info);
CPPUNIT_ASSERT_EQUAL(sal_Size(4 ), converted);
rtl_destroyTextToUnicodeConverter(converter);
}
// UTF-8, too-large four-byte sequence:
{
auto const converter = rtl_createTextToUnicodeConverter(
RTL_TEXTENCODING_UTF8);
CPPUNIT_ASSERT(converter != nullptr);
sal_Unicode buf[TEST_STRING_SIZE];
sal_uInt32 info;
sal_Size converted;
auto const size = rtl_convertTextToUnicode(
converter, nullptr, RTL_CONSTASCII_STRINGPARAM("\xF4\x90\x80\x80" ),
buf, TEST_STRING_SIZE,
(RTL_TEXTTOUNICODE_FLAGS_UNDEFINED_ERROR
| RTL_TEXTTOUNICODE_FLAGS_MBUNDEFINED_ERROR
| RTL_TEXTTOUNICODE_FLAGS_INVALID_DEFAULT
| RTL_TEXTTOUNICODE_FLAGS_FLUSH),
&info, &converted);
CPPUNIT_ASSERT_EQUAL(sal_Size(1 ), size);
CPPUNIT_ASSERT_EQUAL(
u"\uFFFD" _ustr, OUString(buf, sal_Int32(size)));
CPPUNIT_ASSERT_EQUAL(RTL_TEXTTOUNICODE_INFO_INVALID, info);
CPPUNIT_ASSERT_EQUAL(sal_Size(4 ), converted);
rtl_destroyTextToUnicodeConverter(converter);
}
// UTF-8, five-byte sequence:
{
auto const converter = rtl_createTextToUnicodeConverter(
RTL_TEXTENCODING_UTF8);
CPPUNIT_ASSERT(converter != nullptr);
sal_Unicode buf[TEST_STRING_SIZE];
sal_uInt32 info;
sal_Size converted;
auto const size = rtl_convertTextToUnicode(
converter, nullptr,
RTL_CONSTASCII_STRINGPARAM("\xFB\xBF\xBF\xBF\xBF" ),
buf, TEST_STRING_SIZE,
(RTL_TEXTTOUNICODE_FLAGS_UNDEFINED_ERROR
| RTL_TEXTTOUNICODE_FLAGS_MBUNDEFINED_ERROR
| RTL_TEXTTOUNICODE_FLAGS_INVALID_DEFAULT
| RTL_TEXTTOUNICODE_FLAGS_FLUSH),
&info, &converted);
CPPUNIT_ASSERT_EQUAL(sal_Size(1 ), size);
CPPUNIT_ASSERT_EQUAL(
u"\uFFFD" _ustr, OUString(buf, sal_Int32(size)));
CPPUNIT_ASSERT_EQUAL(RTL_TEXTTOUNICODE_INFO_INVALID, info);
CPPUNIT_ASSERT_EQUAL(sal_Size(5 ), converted);
rtl_destroyTextToUnicodeConverter(converter);
}
// UTF-8, six-byte sequence:
{
auto const converter = rtl_createTextToUnicodeConverter(
RTL_TEXTENCODING_UTF8);
CPPUNIT_ASSERT(converter != nullptr);
sal_Unicode buf[TEST_STRING_SIZE];
sal_uInt32 info;
sal_Size converted;
auto const size = rtl_convertTextToUnicode(
converter, nullptr,
RTL_CONSTASCII_STRINGPARAM("\xFD\xBF\xBF\xBF\xBF\xBF" ),
buf, TEST_STRING_SIZE,
(RTL_TEXTTOUNICODE_FLAGS_UNDEFINED_ERROR
| RTL_TEXTTOUNICODE_FLAGS_MBUNDEFINED_ERROR
| RTL_TEXTTOUNICODE_FLAGS_INVALID_DEFAULT
| RTL_TEXTTOUNICODE_FLAGS_FLUSH),
&info, &converted);
CPPUNIT_ASSERT_EQUAL(sal_Size(1 ), size);
CPPUNIT_ASSERT_EQUAL(
u"\uFFFD" _ustr, OUString(buf, sal_Int32(size)));
CPPUNIT_ASSERT_EQUAL(RTL_TEXTTOUNICODE_INFO_INVALID, info);
CPPUNIT_ASSERT_EQUAL(sal_Size(6 ), converted);
rtl_destroyTextToUnicodeConverter(converter);
}
// Java UTF-8, U+0000:
{
auto const converter = rtl_createTextToUnicodeConverter(
RTL_TEXTENCODING_JAVA_UTF8);
CPPUNIT_ASSERT(converter != nullptr);
sal_Unicode buf[TEST_STRING_SIZE];
sal_uInt32 info;
sal_Size converted;
auto const size = rtl_convertTextToUnicode(
converter, nullptr, RTL_CONSTASCII_STRINGPARAM("\0" ), buf,
TEST_STRING_SIZE,
(RTL_TEXTTOUNICODE_FLAGS_UNDEFINED_ERROR
| RTL_TEXTTOUNICODE_FLAGS_MBUNDEFINED_ERROR
| RTL_TEXTTOUNICODE_FLAGS_INVALID_DEFAULT
| RTL_TEXTTOUNICODE_FLAGS_FLUSH),
&info, &converted);
CPPUNIT_ASSERT_EQUAL(sal_Size(1 ), size);
CPPUNIT_ASSERT_EQUAL(
u"\uFFFD" _ustr, OUString(buf, sal_Int32(size)));
CPPUNIT_ASSERT_EQUAL(RTL_TEXTTOUNICODE_INFO_INVALID, info);
CPPUNIT_ASSERT_EQUAL(sal_Size(1 ), converted);
rtl_destroyTextToUnicodeConverter(converter);
}
// Java UTF-8, U+10000:
{
auto const converter = rtl_createTextToUnicodeConverter(
RTL_TEXTENCODING_JAVA_UTF8);
CPPUNIT_ASSERT(converter != nullptr);
static constexpr OString input(u8"\U00010000" _ostr);
sal_Unicode buf[TEST_STRING_SIZE];
sal_uInt32 info;
sal_Size converted;
auto const size = rtl_convertTextToUnicode(
converter, nullptr, input.getStr(), input.getLength(), buf,
TEST_STRING_SIZE,
(RTL_TEXTTOUNICODE_FLAGS_UNDEFINED_ERROR
| RTL_TEXTTOUNICODE_FLAGS_MBUNDEFINED_ERROR
| RTL_TEXTTOUNICODE_FLAGS_INVALID_DEFAULT
| RTL_TEXTTOUNICODE_FLAGS_FLUSH),
&info, &converted);
CPPUNIT_ASSERT_EQUAL(sal_Size(1 ), size);
CPPUNIT_ASSERT_EQUAL(
u"\uFFFD" _ustr, OUString(buf, sal_Int32(size)));
CPPUNIT_ASSERT_EQUAL(RTL_TEXTTOUNICODE_INFO_INVALID, info);
CPPUNIT_ASSERT_EQUAL(sal_Size(4 ), converted);
rtl_destroyTextToUnicodeConverter(converter);
}
}
void Test::testInvalidUnicode() {
auto const converter = rtl_createUnicodeToTextConverter(RTL_TEXTENCODING_UTF8);
CPPUNIT_ASSERT(converter != nullptr);
sal_Unicode const input[] = {0 xDC00}; // lone low surrogate
char buf[TEST_STRING_SIZE];
sal_uInt32 info;
sal_Size converted;
auto const size = rtl_convertUnicodeToText(
converter, nullptr, input, SAL_N_ELEMENTS(input), buf, TEST_STRING_SIZE,
(RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR | RTL_UNICODETOTEXT_FLAGS_INVALID_ERROR
| RTL_UNICODETOTEXT_FLAGS_FLUSH),
&info, &converted);
CPPUNIT_ASSERT_EQUAL(sal_Size(0 ), size);
CPPUNIT_ASSERT_EQUAL(RTL_UNICODETOTEXT_INFO_ERROR | RTL_UNICODETOTEXT_INFO_INVALID, info);
CPPUNIT_ASSERT_EQUAL(sal_Size(1 ), converted);
rtl_destroyTextToUnicodeConverter(converter);
}
void Test::testSRCBUFFERTOSMALL() {
rtl_TextToUnicodeConverter cv = rtl_createTextToUnicodeConverter(
RTL_TEXTENCODING_EUC_JP);
CPPUNIT_ASSERT_MESSAGE("rtl_createTextToUnicodeConverter(EUC-JP) failed" ,
cv != nullptr);
rtl_TextToUnicodeContext cx = rtl_createTextToUnicodeContext(cv);
CPPUNIT_ASSERT_MESSAGE("rtl_createTextToUnicodeContext failed" , cx != nullptr);
char src = '\xA1' ;
sal_Unicode dst[10 ];
sal_uInt32 info;
sal_Size cvt;
CPPUNIT_ASSERT_EQUAL(
sal_Size(0 ),
rtl_convertTextToUnicode(
cv, cx, &src, 1 , dst, SAL_N_ELEMENTS(dst),
(RTL_TEXTTOUNICODE_FLAGS_UNDEFINED_ERROR |
RTL_TEXTTOUNICODE_FLAGS_MBUNDEFINED_ERROR |
RTL_TEXTTOUNICODE_FLAGS_INVALID_ERROR),
&info, &cvt));
CPPUNIT_ASSERT_EQUAL(RTL_TEXTTOUNICODE_INFO_SRCBUFFERTOOSMALL, info);
CPPUNIT_ASSERT(cvt <= 1 );
rtl_destroyTextToUnicodeContext(cv, cx);
rtl_destroyTextToUnicodeConverter(cv);
}
void Test::testMime() {
struct Data {
char const * mime;
rtl_TextEncoding encoding;
bool reverse;
};
static Data const data[] = {
{ "GBK" , RTL_TEXTENCODING_GBK, false },
{ "CP936" , RTL_TEXTENCODING_GBK, false },
{ "MS936" , RTL_TEXTENCODING_GBK, false },
{ "windows-936" , RTL_TEXTENCODING_GBK, false },
{ "GB18030" , RTL_TEXTENCODING_GB_18030, false },
{ "TIS-620" , RTL_TEXTENCODING_TIS_620, true },
{ "ISO-8859-11" , RTL_TEXTENCODING_TIS_620, false }, // not registered
{ "CP874" , RTL_TEXTENCODING_MS_874, false }, // not registered
{ "MS874" , RTL_TEXTENCODING_MS_874, false }, // not registered
{ "windows-874" , RTL_TEXTENCODING_MS_874, true }, // not registered
{ "ISO_8859-8:1988" , RTL_TEXTENCODING_ISO_8859_8, false },
{ "iso-ir-138" , RTL_TEXTENCODING_ISO_8859_8, false },
{ "ISO_8859-8" , RTL_TEXTENCODING_ISO_8859_8, false },
{ "ISO-8859-8" , RTL_TEXTENCODING_ISO_8859_8, true },
{ "hebrew" , RTL_TEXTENCODING_ISO_8859_8, false },
{ "csISOLatinHebrew" , RTL_TEXTENCODING_ISO_8859_8, false },
{ "windows-1255" , RTL_TEXTENCODING_MS_1255, true },
{ "IBM862" , RTL_TEXTENCODING_IBM_862, true },
{ "cp862" , RTL_TEXTENCODING_IBM_862, false },
{ "862" , RTL_TEXTENCODING_IBM_862, false },
{ "csPC862LatinHebrew" , RTL_TEXTENCODING_IBM_862, false },
{ "ISO_8859-6:1987" , RTL_TEXTENCODING_ISO_8859_6, false },
{ "iso-ir-127" , RTL_TEXTENCODING_ISO_8859_6, false },
{ "ISO_8859-6" , RTL_TEXTENCODING_ISO_8859_6, false },
{ "ISO-8859-6" , RTL_TEXTENCODING_ISO_8859_6, true },
{ "ECMA-114" , RTL_TEXTENCODING_ISO_8859_6, false },
{ "ASMO-708" , RTL_TEXTENCODING_ISO_8859_6, false },
{ "arabic" , RTL_TEXTENCODING_ISO_8859_6, false },
{ "csISOLatinArabic" , RTL_TEXTENCODING_ISO_8859_6, false },
{ "windows-1256" , RTL_TEXTENCODING_MS_1256, true },
{ "IBM864" , RTL_TEXTENCODING_IBM_864, true },
{ "cp864" , RTL_TEXTENCODING_IBM_864, false },
{ "csIBM864" , RTL_TEXTENCODING_IBM_864, false },
{ "KOI8-R" , RTL_TEXTENCODING_KOI8_R, false },
{ "csKOI8R" , RTL_TEXTENCODING_KOI8_R, false },
{ "koi8-r" , RTL_TEXTENCODING_KOI8_R, true },
{ "KOI8-U" , RTL_TEXTENCODING_KOI8_U, true },
{ "IBM860" , RTL_TEXTENCODING_IBM_860, true },
{ "cp860" , RTL_TEXTENCODING_IBM_860, false },
{ "860" , RTL_TEXTENCODING_IBM_860, false },
{ "csIBM860" , RTL_TEXTENCODING_IBM_860, false },
{ "IBM861" , RTL_TEXTENCODING_IBM_861, true },
{ "cp861" , RTL_TEXTENCODING_IBM_861, false },
{ "861" , RTL_TEXTENCODING_IBM_861, false },
{ "cp-is" , RTL_TEXTENCODING_IBM_861, false },
{ "csIBM861" , RTL_TEXTENCODING_IBM_861, false },
{ "IBM863" , RTL_TEXTENCODING_IBM_863, true },
{ "cp863" , RTL_TEXTENCODING_IBM_863, false },
{ "863" , RTL_TEXTENCODING_IBM_863, false },
{ "csIBM863" , RTL_TEXTENCODING_IBM_863, false },
{ "IBM865" , RTL_TEXTENCODING_IBM_865, true },
{ "cp865" , RTL_TEXTENCODING_IBM_865, false },
{ "865" , RTL_TEXTENCODING_IBM_865, false },
{ "csIBM865" , RTL_TEXTENCODING_IBM_865, false },
{ "Latin-9" , RTL_TEXTENCODING_ISO_8859_15, false },
{ "KS_C_5601-1987" , RTL_TEXTENCODING_MS_949, false },
{ "iso-ir-149" , RTL_TEXTENCODING_MS_949, false },
{ "KS_C_5601-1989" , RTL_TEXTENCODING_MS_949, false },
{ "KSC_5601" , RTL_TEXTENCODING_MS_949, false },
{ "korean" , RTL_TEXTENCODING_MS_949, false },
{ "csKSC56011987" , RTL_TEXTENCODING_MS_949, false },
{ nullptr, RTL_TEXTENCODING_MS_949, true },
{ "Adobe-Standard-Encoding" , RTL_TEXTENCODING_ADOBE_STANDARD, false },
{ "csAdobeStandardEncoding" , RTL_TEXTENCODING_ADOBE_STANDARD, false },
{ "Adobe-Symbol-Encoding" , RTL_TEXTENCODING_ADOBE_SYMBOL, false },
{ "csHPPSMath" , RTL_TEXTENCODING_ADOBE_SYMBOL, false },
{ "PTCP154" , RTL_TEXTENCODING_PT154, true },
{ "csPTCP154" , RTL_TEXTENCODING_PT154, false },
{ "PT154" , RTL_TEXTENCODING_PT154, false },
{ "CP154" , RTL_TEXTENCODING_PT154, false },
{ "Cyrillic-Asian" , RTL_TEXTENCODING_PT154, false }
};
for (auto const [pMime,nEncoding,bReverse] : data)
{
if (pMime == nullptr)
{
OSL_ASSERT(bReverse);
CPPUNIT_ASSERT_EQUAL(static_cast < char const * >(nullptr),
rtl_getMimeCharsetFromTextEncoding(nEncoding));
}
else
{
CPPUNIT_ASSERT_EQUAL(nEncoding, rtl_getTextEncodingFromMimeCharset(pMime));
if (bReverse)
{
CPPUNIT_ASSERT_EQUAL(OString(pMime),
OString( rtl_getMimeCharsetFromTextEncoding(nEncoding)));
}
}
}
}
void Test::testWindows() {
struct Data {
sal_uInt32 codePage;
rtl_TextEncoding encoding;
bool reverse;
};
static Data const data[] = {
{ 42 , RTL_TEXTENCODING_SYMBOL, true },
{ 437 , RTL_TEXTENCODING_IBM_437, true },
{ 708 , RTL_TEXTENCODING_ISO_8859_6, false },
{ 737 , RTL_TEXTENCODING_IBM_737, true },
{ 775 , RTL_TEXTENCODING_IBM_775, true },
{ 850 , RTL_TEXTENCODING_IBM_850, true },
{ 852 , RTL_TEXTENCODING_IBM_852, true },
{ 855 , RTL_TEXTENCODING_IBM_855, true },
{ 857 , RTL_TEXTENCODING_IBM_857, true },
{ 860 , RTL_TEXTENCODING_IBM_860, true },
{ 861 , RTL_TEXTENCODING_IBM_861, true },
{ 862 , RTL_TEXTENCODING_IBM_862, true },
{ 863 , RTL_TEXTENCODING_IBM_863, true },
{ 864 , RTL_TEXTENCODING_IBM_864, true },
{ 865 , RTL_TEXTENCODING_IBM_865, true },
{ 866 , RTL_TEXTENCODING_IBM_866, true },
{ 869 , RTL_TEXTENCODING_IBM_869, true },
{ 874 , RTL_TEXTENCODING_MS_874, true },
{ 932 , RTL_TEXTENCODING_MS_932, true },
{ 936 , RTL_TEXTENCODING_MS_936, true },
{ 949 , RTL_TEXTENCODING_MS_949, true },
{ 950 , RTL_TEXTENCODING_MS_950, true },
{ 1250 , RTL_TEXTENCODING_MS_1250, true },
{ 1251 , RTL_TEXTENCODING_MS_1251, true },
{ 1252 , RTL_TEXTENCODING_MS_1252, true },
{ 1253 , RTL_TEXTENCODING_MS_1253, true },
{ 1254 , RTL_TEXTENCODING_MS_1254, true },
{ 1255 , RTL_TEXTENCODING_MS_1255, true },
{ 1256 , RTL_TEXTENCODING_MS_1256, true },
{ 1257 , RTL_TEXTENCODING_MS_1257, true },
{ 1258 , RTL_TEXTENCODING_MS_1258, true },
{ 1361 , RTL_TEXTENCODING_MS_1361, true },
{ 10000 , RTL_TEXTENCODING_APPLE_ROMAN, true },
{ 10001 , RTL_TEXTENCODING_APPLE_JAPANESE, true },
{ 10002 , RTL_TEXTENCODING_APPLE_CHINTRAD, true },
{ 10003 , RTL_TEXTENCODING_APPLE_KOREAN, true },
{ 10004 , RTL_TEXTENCODING_APPLE_ARABIC, true },
{ 10005 , RTL_TEXTENCODING_APPLE_HEBREW, true },
{ 10006 , RTL_TEXTENCODING_APPLE_GREEK, true },
{ 10007 , RTL_TEXTENCODING_APPLE_CYRILLIC, true },
{ 10008 , RTL_TEXTENCODING_APPLE_CHINSIMP, true },
{ 10010 , RTL_TEXTENCODING_APPLE_ROMANIAN, true },
{ 10017 , RTL_TEXTENCODING_APPLE_UKRAINIAN, true },
{ 10029 , RTL_TEXTENCODING_APPLE_CENTEURO, true },
{ 10079 , RTL_TEXTENCODING_APPLE_ICELAND, true },
{ 10081 , RTL_TEXTENCODING_APPLE_TURKISH, true },
{ 10082 , RTL_TEXTENCODING_APPLE_CROATIAN, true },
{ 20127 , RTL_TEXTENCODING_ASCII_US, true },
{ 20866 , RTL_TEXTENCODING_KOI8_R, true },
{ 21866 , RTL_TEXTENCODING_KOI8_U, true },
{ 28591 , RTL_TEXTENCODING_ISO_8859_1, true },
{ 28592 , RTL_TEXTENCODING_ISO_8859_2, true },
{ 28593 , RTL_TEXTENCODING_ISO_8859_3, true },
{ 28594 , RTL_TEXTENCODING_ISO_8859_4, true },
{ 28595 , RTL_TEXTENCODING_ISO_8859_5, true },
{ 28596 , RTL_TEXTENCODING_ISO_8859_6, true },
{ 28597 , RTL_TEXTENCODING_ISO_8859_7, true },
{ 28598 , RTL_TEXTENCODING_ISO_8859_8, true },
{ 28599 , RTL_TEXTENCODING_ISO_8859_9, true },
{ 28605 , RTL_TEXTENCODING_ISO_8859_15, true },
{ 50220 , RTL_TEXTENCODING_ISO_2022_JP, true },
{ 50225 , RTL_TEXTENCODING_ISO_2022_KR, true },
{ 51932 , RTL_TEXTENCODING_EUC_JP, true },
{ 51936 , RTL_TEXTENCODING_EUC_CN, true },
{ 51949 , RTL_TEXTENCODING_EUC_KR, true },
{ 65000 , RTL_TEXTENCODING_UTF7, true },
{ 65001 , RTL_TEXTENCODING_UTF8, true },
{ 1200 , RTL_TEXTENCODING_DONTKNOW, false }, // UTF_16LE
{ 1201 , RTL_TEXTENCODING_DONTKNOW, false }, // UTF_16LE
{ 0 , RTL_TEXTENCODING_DONTKNOW, true },
{ 0 , RTL_TEXTENCODING_UCS4, true },
{ 0 , RTL_TEXTENCODING_UCS2, true },
{ 57002 , RTL_TEXTENCODING_ISCII_DEVANAGARI, true }
};
for (auto const [nCodePage,nEncoding,bReverse] : data)
{
OSL_ASSERT(nCodePage != 0 || bReverse);
if (nCodePage != 0 )
{
CPPUNIT_ASSERT_EQUAL( nEncoding, rtl_getTextEncodingFromWindowsCodePage(nCodePage));
}
if (bReverse)
{
CPPUNIT_ASSERT_EQUAL( nCodePage, rtl_getWindowsCodePageFromTextEncoding(nEncoding));
}
}
}
void Test::testInfo() {
struct Data {
rtl_TextEncoding encoding;
sal_uInt32 flag;
bool value;
};
static Data const data[] = {
#if WITH_LOCALE_ALL || WITH_LOCALE_ja
{ RTL_TEXTENCODING_APPLE_JAPANESE, RTL_TEXTENCODING_INFO_ASCII, false },
{ RTL_TEXTENCODING_EUC_JP, RTL_TEXTENCODING_INFO_ASCII, true },
{ RTL_TEXTENCODING_ISO_2022_JP, RTL_TEXTENCODING_INFO_CONTEXT, true },
{ RTL_TEXTENCODING_ISO_2022_JP, RTL_TEXTENCODING_INFO_ASCII, false },
{ RTL_TEXTENCODING_SHIFT_JIS, RTL_TEXTENCODING_INFO_ASCII, false },
#endif
#if WITH_LOCALE_ALL || WITH_LOCALE_ko
{ RTL_TEXTENCODING_APPLE_KOREAN, RTL_TEXTENCODING_INFO_ASCII, false },
{ RTL_TEXTENCODING_EUC_KR, RTL_TEXTENCODING_INFO_ASCII, true },
{ RTL_TEXTENCODING_ISO_2022_KR, RTL_TEXTENCODING_INFO_CONTEXT, true },
{ RTL_TEXTENCODING_ISO_2022_KR, RTL_TEXTENCODING_INFO_ASCII, false },
#endif
#if WITH_LOCALE_ALL || WITH_LOCALE_zh
{ RTL_TEXTENCODING_APPLE_CHINTRAD, RTL_TEXTENCODING_INFO_ASCII, false },
{ RTL_TEXTENCODING_BIG5, RTL_TEXTENCODING_INFO_ASCII, false },
{ RTL_TEXTENCODING_BIG5_HKSCS, RTL_TEXTENCODING_INFO_ASCII, false },
{ RTL_TEXTENCODING_EUC_CN, RTL_TEXTENCODING_INFO_ASCII, true },
{ RTL_TEXTENCODING_EUC_TW, RTL_TEXTENCODING_INFO_ASCII, true },
{ RTL_TEXTENCODING_GBK, RTL_TEXTENCODING_INFO_ASCII, false },
{ RTL_TEXTENCODING_GB_18030, RTL_TEXTENCODING_INFO_ASCII, false },
{ RTL_TEXTENCODING_GB_18030, RTL_TEXTENCODING_INFO_UNICODE, true },
{ RTL_TEXTENCODING_ISO_2022_CN, RTL_TEXTENCODING_INFO_CONTEXT, true },
{ RTL_TEXTENCODING_ISO_2022_CN, RTL_TEXTENCODING_INFO_ASCII, false },
#endif
#if WITH_LOCALE_ALL || WITH_LOCALE_FOR_SCRIPT_Deva
{ RTL_TEXTENCODING_ISCII_DEVANAGARI, RTL_TEXTENCODING_INFO_ASCII, true },
{ RTL_TEXTENCODING_ISCII_DEVANAGARI, RTL_TEXTENCODING_INFO_MIME, false },
#endif
{ RTL_TEXTENCODING_MS_1361, RTL_TEXTENCODING_INFO_ASCII, false },
{ RTL_TEXTENCODING_MS_874, RTL_TEXTENCODING_INFO_ASCII, true },
{ RTL_TEXTENCODING_MS_932, RTL_TEXTENCODING_INFO_ASCII, false },
{ RTL_TEXTENCODING_MS_936, RTL_TEXTENCODING_INFO_ASCII, false },
{ RTL_TEXTENCODING_MS_949, RTL_TEXTENCODING_INFO_ASCII, false },
{ RTL_TEXTENCODING_MS_950, RTL_TEXTENCODING_INFO_ASCII, false },
{ RTL_TEXTENCODING_KOI8_R, RTL_TEXTENCODING_INFO_ASCII, true },
{ RTL_TEXTENCODING_KOI8_R, RTL_TEXTENCODING_INFO_MIME, true },
{ RTL_TEXTENCODING_KOI8_U, RTL_TEXTENCODING_INFO_ASCII, true },
{ RTL_TEXTENCODING_KOI8_U, RTL_TEXTENCODING_INFO_MIME, true },
{ RTL_TEXTENCODING_IBM_860, RTL_TEXTENCODING_INFO_MIME, true },
{ RTL_TEXTENCODING_IBM_861, RTL_TEXTENCODING_INFO_MIME, true },
{ RTL_TEXTENCODING_IBM_863, RTL_TEXTENCODING_INFO_MIME, true },
{ RTL_TEXTENCODING_IBM_865, RTL_TEXTENCODING_INFO_MIME, true },
{ RTL_TEXTENCODING_ADOBE_STANDARD, RTL_TEXTENCODING_INFO_ASCII, false },
{ RTL_TEXTENCODING_ADOBE_STANDARD, RTL_TEXTENCODING_INFO_MIME, true },
{ RTL_TEXTENCODING_ADOBE_STANDARD, RTL_TEXTENCODING_INFO_SYMBOL, false },
{ RTL_TEXTENCODING_ADOBE_SYMBOL, RTL_TEXTENCODING_INFO_ASCII, false },
{ RTL_TEXTENCODING_ADOBE_SYMBOL, RTL_TEXTENCODING_INFO_MIME, true },
{ RTL_TEXTENCODING_ADOBE_SYMBOL, RTL_TEXTENCODING_INFO_SYMBOL, true },
{ RTL_TEXTENCODING_PT154, RTL_TEXTENCODING_INFO_ASCII, true },
{ RTL_TEXTENCODING_PT154, RTL_TEXTENCODING_INFO_MIME, true }
};
for (auto const [nEncoding, nFlag, bValue] : data)
{
rtl_TextEncodingInfo info;
info.StructSize = sizeof info;
CPPUNIT_ASSERT(rtl_getTextEncodingInfo(nEncoding, &info));
CPPUNIT_ASSERT_EQUAL(bValue, ((info.Flags & nFlag) != 0 ));
}
}
CPPUNIT_TEST_SUITE_REGISTRATION(Test);
}
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
Messung V0.5 in Prozent C=92 H=97 G=94
¤ Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.0.127Bemerkung:
(vorverarbeitet am 2026-06-07)
¤
*© Formatika GbR, Deutschland