Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/C/LibreOffice/sal/textenc/   (Office von Apache Version 25.8.3.2©)  Datei vom 5.10.2025 mit Größe 167 kB image not shown  

Quelle  tcvtest1.tab   Sprache: unbekannt

 
/*
 * 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 <sal/config.h>

#include "convertsimple.hxx"
#include "tenchelp.hxx"

/* ======================================================================= */

/* This file contain the tables for all 1 byte charsets, for the */
/* following scripts: easteurope, cyrillic, greek, turkish */

/* ======================================================================= */

/* IBM-737 */
/* Dos Standard CharSet for Greek */
/* 1-byte, 0x00-0x7F ASCII without exception */
/* Convert-Tables: mappings/vendors/micsft/pc/cp737.txt from 04/24/96 Version 2.00 */
/* Last-Changes from us: */

/* ----------------------------------------------------------------------- */

#define IBM737UNI_START                 0x80
#define IBM737UNI_END                   0xFF
sal_uInt16 const aImplIBM737ToUniTab[IBM737UNI_END - IBM737UNI_START + 1] =
{
/*       0       1       2       3       4       5       6       7 */
/*       8       9       A       B       C       D       E       F */
    0x0391, 0x0392, 0x0393, 0x0394, 0x0395, 0x0396, 0x0397, 0x0398, /* 0x80 */
    0x0399, 0x039A, 0x039B, 0x039C, 0x039D, 0x039E, 0x039F, 0x03A0, /* 0x80 */
    0x03A1, 0x03A3, 0x03A4, 0x03A5, 0x03A6, 0x03A7, 0x03A8, 0x03A9, /* 0x90 */
    0x03B1, 0x03B2, 0x03B3, 0x03B4, 0x03B5, 0x03B6, 0x03B7, 0x03B8, /* 0x90 */
    0x03B9, 0x03BA, 0x03BB, 0x03BC, 0x03BD, 0x03BE, 0x03BF, 0x03C0, /* 0xA0 */
    0x03C1, 0x03C3, 0x03C2, 0x03C4, 0x03C5, 0x03C6, 0x03C7, 0x03C8, /* 0xA0 */
    0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556, /* 0xB0 */
    0x2555, 0x2563, 0x2551, 0x2557, 0x255D, 0x255C, 0x255B, 0x2510, /* 0xB0 */
    0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x255E, 0x255F, /* 0xC0 */
    0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x2567, /* 0xC0 */
    0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256B, /* 0xD0 */
    0x256A, 0x2518, 0x250C, 0x2588, 0x2584, 0x258C, 0x2590, 0x2580, /* 0xD0 */
    0x03C9, 0x03AC, 0x03AD, 0x03AE, 0x03CA, 0x03AF, 0x03CC, 0x03CD, /* 0xE0 */
    0x03CB, 0x03CE, 0x0386, 0x0388, 0x0389, 0x038A, 0x038C, 0x038E, /* 0xE0 */
    0x038F, 0x00B1, 0x2265, 0x2264, 0x03AA, 0x03AB, 0x00F7, 0x2248, /* 0xF0 */
    0x00B0, 0x2219, 0x00B7, 0x221A, 0x207F, 0x00B2, 0x25A0, 0x00A0  /* 0xF0 */
};

/* ----------------------------------------------------------------------- */

#define IBM737CHAR_START                0x0386
#define IBM737CHAR_END                  0x03CE
unsigned char const aImplIBM737ToCharTab[IBM737CHAR_END - IBM737CHAR_START + 1] =
{
/*     0     1     2     3     4     5     6     7 */
/*     8     9     A     B     C     D     E     F */
                                        0xEA,    0, /* 0x0380 */
    0xEB, 0xEC, 0xED,    0, 0xEE,    0, 0xEF, 0xF0, /* 0x0380 */
       0, 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, /* 0x0390 */
    0x87, 0x88, 0x89, 0x8A, 0x8B, 0x8C, 0x8D, 0x8E, /* 0x0390 */
    0x8F, 0x90,    0, 0x91, 0x92, 0x93, 0x94, 0x95, /* 0x03A0 */
    0x96, 0x97, 0xF4, 0xF5, 0xE1, 0xE2, 0xE3, 0xE5, /* 0x03A0 */
       0, 0x98, 0x99, 0x9A, 0x9B, 0x9C, 0x9D, 0x9E, /* 0x03B0 */
    0x9F, 0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, /* 0x03B0 */
    0xA7, 0xA8, 0xAA, 0xA9, 0xAB, 0xAC, 0xAD, 0xAE, /* 0x03C0 */
    0xAF, 0xE0, 0xE4, 0xE8, 0xE6, 0xE7, 0xE9        /* 0x03C0 */
};

/* ----------------------------------------------------------------------- */

#define IBM737TOCHARTABEX_COUNT         61
ImplUniCharTabData const aImplIBM737ToCharTabEx[IBM737TOCHARTABEX_COUNT] =
{
  { 0x00A0, 0xFF, 0 },
  { 0x00B0, 0xF8, 0 },
  { 0x00B1, 0xF1, 0 },
  { 0x00B2, 0xFD, 0 },
  { 0x00B7, 0xFA, 0 },
  { 0x00F7, 0xF6, 0 },
  { 0x207F, 0xFC, 0 },
  { 0x2219, 0xF9, 0 },
  { 0x221A, 0xFB, 0 },
  { 0x2248, 0xF7, 0 },
  { 0x2264, 0xF3, 0 },
  { 0x2265, 0xF2, 0 },
  { 0x2500, 0xC4, 0 },
  { 0x2502, 0xB3, 0 },
  { 0x250C, 0xDA, 0 },
  { 0x2510, 0xBF, 0 },
  { 0x2514, 0xC0, 0 },
  { 0x2518, 0xD9, 0 },
  { 0x251C, 0xC3, 0 },
  { 0x2524, 0xB4, 0 },
  { 0x252C, 0xC2, 0 },
  { 0x2534, 0xC1, 0 },
  { 0x253C, 0xC5, 0 },
  { 0x2550, 0xCD, 0 },
  { 0x2551, 0xBA, 0 },
  { 0x2552, 0xD5, 0 },
  { 0x2553, 0xD6, 0 },
  { 0x2554, 0xC9, 0 },
  { 0x2555, 0xB8, 0 },
  { 0x2556, 0xB7, 0 },
  { 0x2557, 0xBB, 0 },
  { 0x2558, 0xD4, 0 },
  { 0x2559, 0xD3, 0 },
  { 0x255A, 0xC8, 0 },
  { 0x255B, 0xBE, 0 },
  { 0x255C, 0xBD, 0 },
  { 0x255D, 0xBC, 0 },
  { 0x255E, 0xC6, 0 },
  { 0x255F, 0xC7, 0 },
  { 0x2560, 0xCC, 0 },
  { 0x2561, 0xB5, 0 },
  { 0x2562, 0xB6, 0 },
  { 0x2563, 0xB9, 0 },
  { 0x2564, 0xD1, 0 },
  { 0x2565, 0xD2, 0 },
  { 0x2566, 0xCB, 0 },
  { 0x2567, 0xCF, 0 },
  { 0x2568, 0xD0, 0 },
  { 0x2569, 0xCA, 0 },
  { 0x256A, 0xD8, 0 },
  { 0x256B, 0xD7, 0 },
  { 0x256C, 0xCE, 0 },
  { 0x2580, 0xDF, 0 },
  { 0x2584, 0xDC, 0 },
  { 0x2588, 0xDB, 0 },
  { 0x258C, 0xDD, 0 },
  { 0x2590, 0xDE, 0 },
  { 0x2591, 0xB0, 0 },
  { 0x2592, 0xB1, 0 },
  { 0x2593, 0xB2, 0 },
  { 0x25A0, 0xFE, 0 }
};

/* ----------------------------------------------------------------------- */

ImplByteConvertData const aImplIBM737ByteCvtData =
{
    aImplIBM737ToUniTab,
    nullptr,
    aImplIBM737ToCharTab,
    nullptr,
    aImplIBM737ToCharTabEx,
    IBM737UNI_START, IBM737UNI_END,
    NOTABUNI_START, NOTABUNI_END,
    IBM737CHAR_START, IBM737CHAR_END,
    NOTABCHAR_START, NOTABCHAR_END,
    IBM737TOCHARTABEX_COUNT
};

/* ----------------------------------------------------------------------- */

ImplTextEncodingData const aImplIBM737TextEncodingData
    = { { &aImplIBM737ByteCvtData,
          sal::detail::textenc::convertCharToUnicode,
          sal::detail::textenc::convertUnicodeToChar,
          nullptr,
          nullptr,
          nullptr,
          nullptr,
          nullptr,
          nullptr },
        "iso8859-7",
        "iso-8859-7",
        1,
        1,
        1,
        161,
        RTL_TEXTENCODING_INFO_ASCII };
    /* DOS/OS2, SCRIPT_GREEK, pc code page 737, mac encoding 6 */

/* ======================================================================= */

/* IBM-775 */
/* Dos Standard CharSet for BalticRim */
/* 1-byte, 0x00-0x7F ASCII without exception */
/* Convert-Tables: mappings/vendors/micsft/pc/cp775.txt from 04/24/96 Version 2.00 */
/* Last-Changes from us: */

/* ----------------------------------------------------------------------- */

#define IBM775UNI_START                 0x80
#define IBM775UNI_END                   0xFF
sal_uInt16 const aImplIBM775ToUniTab[IBM775UNI_END - IBM775UNI_START + 1] =
{
/*       0       1       2       3       4       5       6       7 */
/*       8       9       A       B       C       D       E       F */
    0x0106, 0x00FC, 0x00E9, 0x0101, 0x00E4, 0x0123, 0x00E5, 0x0107, /* 0x80 */
    0x0142, 0x0113, 0x0156, 0x0157, 0x012B, 0x0179, 0x00C4, 0x00C5, /* 0x80 */
    0x00C9, 0x00E6, 0x00C6, 0x014D, 0x00F6, 0x0122, 0x00A2, 0x015A, /* 0x90 */
    0x015B, 0x00D6, 0x00DC, 0x00F8, 0x00A3, 0x00D8, 0x00D7, 0x00A4, /* 0x90 */
    0x0100, 0x012A, 0x00F3, 0x017B, 0x017C, 0x017A, 0x201D, 0x00A6, /* 0xA0 */
    0x00A9, 0x00AE, 0x00AC, 0x00BD, 0x00BC, 0x0141, 0x00AB, 0x00BB, /* 0xA0 */
    0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x0104, 0x010C, 0x0118, /* 0xB0 */
    0x0116, 0x2563, 0x2551, 0x2557, 0x255D, 0x012E, 0x0160, 0x2510, /* 0xB0 */
    0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x0172, 0x016A, /* 0xC0 */
    0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x017D, /* 0xC0 */
    0x0105, 0x010D, 0x0119, 0x0117, 0x012F, 0x0161, 0x0173, 0x016B, /* 0xD0 */
    0x017E, 0x2518, 0x250C, 0x2588, 0x2584, 0x258C, 0x2590, 0x2580, /* 0xD0 */
    0x00D3, 0x00DF, 0x014C, 0x0143, 0x00F5, 0x00D5, 0x00B5, 0x0144, /* 0xE0 */
    0x0136, 0x0137, 0x013B, 0x013C, 0x0146, 0x0112, 0x0145, 0x2019, /* 0xE0 */
    0x00AD, 0x00B1, 0x201C, 0x00BE, 0x00B6, 0x00A7, 0x00F7, 0x201E, /* 0xF0 */
    0x00B0, 0x2219, 0x00B7, 0x00B9, 0x00B3, 0x00B2, 0x25A0, 0x00A0  /* 0xF0 */
};

/* ----------------------------------------------------------------------- */

#define IBM775TOCHARTABEX_COUNT         128
ImplUniCharTabData const aImplIBM775ToCharTabEx[IBM775TOCHARTABEX_COUNT] =
{
  { 0x00A0, 0xFF, 0 },
  { 0x00A2, 0x96, 0 },
  { 0x00A3, 0x9C, 0 },
  { 0x00A4, 0x9F, 0 },
  { 0x00A6, 0xA7, 0 },
  { 0x00A7, 0xF5, 0 },
  { 0x00A9, 0xA8, 0 },
  { 0x00AB, 0xAE, 0 },
  { 0x00AC, 0xAA, 0 },
  { 0x00AD, 0xF0, 0 },
  { 0x00AE, 0xA9, 0 },
  { 0x00B0, 0xF8, 0 },
  { 0x00B1, 0xF1, 0 },
  { 0x00B2, 0xFD, 0 },
  { 0x00B3, 0xFC, 0 },
  { 0x00B5, 0xE6, 0 },
  { 0x00B6, 0xF4, 0 },
  { 0x00B7, 0xFA, 0 },
  { 0x00B9, 0xFB, 0 },
  { 0x00BB, 0xAF, 0 },
  { 0x00BC, 0xAC, 0 },
  { 0x00BD, 0xAB, 0 },
  { 0x00BE, 0xF3, 0 },
  { 0x00C4, 0x8E, 0 },
  { 0x00C5, 0x8F, 0 },
  { 0x00C6, 0x92, 0 },
  { 0x00C9, 0x90, 0 },
  { 0x00D3, 0xE0, 0 },
  { 0x00D5, 0xE5, 0 },
  { 0x00D6, 0x99, 0 },
  { 0x00D7, 0x9E, 0 },
  { 0x00D8, 0x9D, 0 },
  { 0x00DC, 0x9A, 0 },
  { 0x00DF, 0xE1, 0 },
  { 0x00E4, 0x84, 0 },
  { 0x00E5, 0x86, 0 },
  { 0x00E6, 0x91, 0 },
  { 0x00E9, 0x82, 0 },
  { 0x00F3, 0xA2, 0 },
  { 0x00F5, 0xE4, 0 },
  { 0x00F6, 0x94, 0 },
  { 0x00F7, 0xF6, 0 },
  { 0x00F8, 0x9B, 0 },
  { 0x00FC, 0x81, 0 },
  { 0x0100, 0xA0, 0 },
  { 0x0101, 0x83, 0 },
  { 0x0104, 0xB5, 0 },
  { 0x0105, 0xD0, 0 },
  { 0x0106, 0x80, 0 },
  { 0x0107, 0x87, 0 },
  { 0x010C, 0xB6, 0 },
  { 0x010D, 0xD1, 0 },
  { 0x0112, 0xED, 0 },
  { 0x0113, 0x89, 0 },
  { 0x0116, 0xB8, 0 },
  { 0x0117, 0xD3, 0 },
  { 0x0118, 0xB7, 0 },
  { 0x0119, 0xD2, 0 },
  { 0x0122, 0x95, 0 },
  { 0x0123, 0x85, 0 },
  { 0x012A, 0xA1, 0 },
  { 0x012B, 0x8C, 0 },
  { 0x012E, 0xBD, 0 },
  { 0x012F, 0xD4, 0 },
  { 0x0136, 0xE8, 0 },
  { 0x0137, 0xE9, 0 },
  { 0x013B, 0xEA, 0 },
  { 0x013C, 0xEB, 0 },
  { 0x0141, 0xAD, 0 },
  { 0x0142, 0x88, 0 },
  { 0x0143, 0xE3, 0 },
  { 0x0144, 0xE7, 0 },
  { 0x0145, 0xEE, 0 },
  { 0x0146, 0xEC, 0 },
  { 0x014C, 0xE2, 0 },
  { 0x014D, 0x93, 0 },
  { 0x0156, 0x8A, 0 },
  { 0x0157, 0x8B, 0 },
  { 0x015A, 0x97, 0 },
  { 0x015B, 0x98, 0 },
  { 0x0160, 0xBE, 0 },
  { 0x0161, 0xD5, 0 },
  { 0x016A, 0xC7, 0 },
  { 0x016B, 0xD7, 0 },
  { 0x0172, 0xC6, 0 },
  { 0x0173, 0xD6, 0 },
  { 0x0179, 0x8D, 0 },
  { 0x017A, 0xA5, 0 },
  { 0x017B, 0xA3, 0 },
  { 0x017C, 0xA4, 0 },
  { 0x017D, 0xCF, 0 },
  { 0x017E, 0xD8, 0 },
  { 0x2019, 0xEF, 0 },
  { 0x201C, 0xF2, 0 },
  { 0x201D, 0xA6, 0 },
  { 0x201E, 0xF7, 0 },
  { 0x2219, 0xF9, 0 },
  { 0x2500, 0xC4, 0 },
  { 0x2502, 0xB3, 0 },
  { 0x250C, 0xDA, 0 },
  { 0x2510, 0xBF, 0 },
  { 0x2514, 0xC0, 0 },
  { 0x2518, 0xD9, 0 },
  { 0x251C, 0xC3, 0 },
  { 0x2524, 0xB4, 0 },
  { 0x252C, 0xC2, 0 },
  { 0x2534, 0xC1, 0 },
  { 0x253C, 0xC5, 0 },
  { 0x2550, 0xCD, 0 },
  { 0x2551, 0xBA, 0 },
  { 0x2554, 0xC9, 0 },
  { 0x2557, 0xBB, 0 },
  { 0x255A, 0xC8, 0 },
  { 0x255D, 0xBC, 0 },
  { 0x2560, 0xCC, 0 },
  { 0x2563, 0xB9, 0 },
  { 0x2566, 0xCB, 0 },
  { 0x2569, 0xCA, 0 },
  { 0x256C, 0xCE, 0 },
  { 0x2580, 0xDF, 0 },
  { 0x2584, 0xDC, 0 },
  { 0x2588, 0xDB, 0 },
  { 0x258C, 0xDD, 0 },
  { 0x2590, 0xDE, 0 },
  { 0x2591, 0xB0, 0 },
  { 0x2592, 0xB1, 0 },
  { 0x2593, 0xB2, 0 },
  { 0x25A0, 0xFE, 0 }
};

/* ----------------------------------------------------------------------- */

ImplByteConvertData const aImplIBM775ByteCvtData =
{
    aImplIBM775ToUniTab,
    nullptr,
    nullptr,
    nullptr,
    aImplIBM775ToCharTabEx,
    IBM775UNI_START, IBM775UNI_END,
    NOTABUNI_START, NOTABUNI_END,
    NOTABCHAR_START, NOTABCHAR_END,
    NOTABCHAR_START, NOTABCHAR_END,
    IBM775TOCHARTABEX_COUNT
};

/* ----------------------------------------------------------------------- */

ImplTextEncodingData const aImplIBM775TextEncodingData
    = { { &aImplIBM775ByteCvtData,
          sal::detail::textenc::convertCharToUnicode,
          sal::detail::textenc::convertUnicodeToChar,
          nullptr,
          nullptr,
          nullptr,
          nullptr,
          nullptr,
          nullptr },
        "iso8859-4",
        "iso-8859-4",
        1,
        1,
        1,
        186,
        RTL_TEXTENCODING_INFO_ASCII };
    /* DOS/OS2, SCRIPT_BALTIC, pc code page 775, mac encoding 29 (?) */

/* ======================================================================= */

/* IBM-852 */
/* Dos Standard CharSet for Central Europa (Jug., Pol., Tsch., Ung., ...) */
/* 1-byte, 0x00-0x7F ASCII without exception */
/* Convert-Tables: mappings/vendors/micsft/pc/cp852.txt from 04/24/96 Version 2.00 */
/* Last-Changes from us: */

/* ----------------------------------------------------------------------- */

#define IBM852UNI_START                 0x80
#define IBM852UNI_END                   0xFF
sal_uInt16 const aImplIBM852ToUniTab[IBM852UNI_END - IBM852UNI_START + 1] =
{
/*       0       1       2       3       4       5       6       7 */
/*       8       9       A       B       C       D       E       F */
    0x00C7, 0x00FC, 0x00E9, 0x00E2, 0x00E4, 0x016F, 0x0107, 0x00E7, /* 0x80 */
    0x0142, 0x00EB, 0x0150, 0x0151, 0x00EE, 0x0179, 0x00C4, 0x0106, /* 0x80 */
    0x00C9, 0x0139, 0x013A, 0x00F4, 0x00F6, 0x013D, 0x013E, 0x015A, /* 0x90 */
    0x015B, 0x00D6, 0x00DC, 0x0164, 0x0165, 0x0141, 0x00D7, 0x010D, /* 0x90 */
    0x00E1, 0x00ED, 0x00F3, 0x00FA, 0x0104, 0x0105, 0x017D, 0x017E, /* 0xA0 */
    0x0118, 0x0119, 0x00AC, 0x017A, 0x010C, 0x015F, 0x00AB, 0x00BB, /* 0xA0 */
    0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x00C1, 0x00C2, 0x011A, /* 0xB0 */
    0x015E, 0x2563, 0x2551, 0x2557, 0x255D, 0x017B, 0x017C, 0x2510, /* 0xB0 */
    0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x0102, 0x0103, /* 0xC0 */
    0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x00A4, /* 0xC0 */
    0x0111, 0x0110, 0x010E, 0x00CB, 0x010F, 0x0147, 0x00CD, 0x00CE, /* 0xD0 */
    0x011B, 0x2518, 0x250C, 0x2588, 0x2584, 0x0162, 0x016E, 0x2580, /* 0xD0 */
    0x00D3, 0x00DF, 0x00D4, 0x0143, 0x0144, 0x0148, 0x0160, 0x0161, /* 0xE0 */
    0x0154, 0x00DA, 0x0155, 0x0170, 0x00FD, 0x00DD, 0x0163, 0x00B4, /* 0xE0 */
    0x00AD, 0x02DD, 0x02DB, 0x02C7, 0x02D8, 0x00A7, 0x00F7, 0x00B8, /* 0xF0 */
    0x00B0, 0x00A8, 0x02D9, 0x0171, 0x0158, 0x0159, 0x25A0, 0x00A0  /* 0xF0 */
};

/* ----------------------------------------------------------------------- */

#define IBM852TOCHARTABEX_COUNT         128
ImplUniCharTabData const aImplIBM852ToCharTabEx[IBM852TOCHARTABEX_COUNT] =
{
  { 0x00A0, 0xFF, 0 },
  { 0x00A4, 0xCF, 0 },
  { 0x00A7, 0xF5, 0 },
  { 0x00A8, 0xF9, 0 },
  { 0x00AB, 0xAE, 0 },
  { 0x00AC, 0xAA, 0 },
  { 0x00AD, 0xF0, 0 },
  { 0x00B0, 0xF8, 0 },
  { 0x00B4, 0xEF, 0 },
  { 0x00B8, 0xF7, 0 },
  { 0x00BB, 0xAF, 0 },
  { 0x00C1, 0xB5, 0 },
  { 0x00C2, 0xB6, 0 },
  { 0x00C4, 0x8E, 0 },
  { 0x00C7, 0x80, 0 },
  { 0x00C9, 0x90, 0 },
  { 0x00CB, 0xD3, 0 },
  { 0x00CD, 0xD6, 0 },
  { 0x00CE, 0xD7, 0 },
  { 0x00D3, 0xE0, 0 },
  { 0x00D4, 0xE2, 0 },
  { 0x00D6, 0x99, 0 },
  { 0x00D7, 0x9E, 0 },
  { 0x00DA, 0xE9, 0 },
  { 0x00DC, 0x9A, 0 },
  { 0x00DD, 0xED, 0 },
  { 0x00DF, 0xE1, 0 },
  { 0x00E1, 0xA0, 0 },
  { 0x00E2, 0x83, 0 },
  { 0x00E4, 0x84, 0 },
  { 0x00E7, 0x87, 0 },
  { 0x00E9, 0x82, 0 },
  { 0x00EB, 0x89, 0 },
  { 0x00ED, 0xA1, 0 },
  { 0x00EE, 0x8C, 0 },
  { 0x00F3, 0xA2, 0 },
  { 0x00F4, 0x93, 0 },
  { 0x00F6, 0x94, 0 },
  { 0x00F7, 0xF6, 0 },
  { 0x00FA, 0xA3, 0 },
  { 0x00FC, 0x81, 0 },
  { 0x00FD, 0xEC, 0 },
  { 0x0102, 0xC6, 0 },
  { 0x0103, 0xC7, 0 },
  { 0x0104, 0xA4, 0 },
  { 0x0105, 0xA5, 0 },
  { 0x0106, 0x8F, 0 },
  { 0x0107, 0x86, 0 },
  { 0x010C, 0xAC, 0 },
  { 0x010D, 0x9F, 0 },
  { 0x010E, 0xD2, 0 },
  { 0x010F, 0xD4, 0 },
  { 0x0110, 0xD1, 0 },
  { 0x0111, 0xD0, 0 },
  { 0x0118, 0xA8, 0 },
  { 0x0119, 0xA9, 0 },
  { 0x011A, 0xB7, 0 },
  { 0x011B, 0xD8, 0 },
  { 0x0139, 0x91, 0 },
  { 0x013A, 0x92, 0 },
  { 0x013D, 0x95, 0 },
  { 0x013E, 0x96, 0 },
  { 0x0141, 0x9D, 0 },
  { 0x0142, 0x88, 0 },
  { 0x0143, 0xE3, 0 },
  { 0x0144, 0xE4, 0 },
  { 0x0147, 0xD5, 0 },
  { 0x0148, 0xE5, 0 },
  { 0x0150, 0x8A, 0 },
  { 0x0151, 0x8B, 0 },
  { 0x0154, 0xE8, 0 },
  { 0x0155, 0xEA, 0 },
  { 0x0158, 0xFC, 0 },
  { 0x0159, 0xFD, 0 },
  { 0x015A, 0x97, 0 },
  { 0x015B, 0x98, 0 },
  { 0x015E, 0xB8, 0 },
  { 0x015F, 0xAD, 0 },
  { 0x0160, 0xE6, 0 },
  { 0x0161, 0xE7, 0 },
  { 0x0162, 0xDD, 0 },
  { 0x0163, 0xEE, 0 },
  { 0x0164, 0x9B, 0 },
  { 0x0165, 0x9C, 0 },
  { 0x016E, 0xDE, 0 },
  { 0x016F, 0x85, 0 },
  { 0x0170, 0xEB, 0 },
  { 0x0171, 0xFB, 0 },
  { 0x0179, 0x8D, 0 },
  { 0x017A, 0xAB, 0 },
  { 0x017B, 0xBD, 0 },
  { 0x017C, 0xBE, 0 },
  { 0x017D, 0xA6, 0 },
  { 0x017E, 0xA7, 0 },
  { 0x02C7, 0xF3, 0 },
  { 0x02D8, 0xF4, 0 },
  { 0x02D9, 0xFA, 0 },
  { 0x02DB, 0xF2, 0 },
  { 0x02DD, 0xF1, 0 },
  { 0x2500, 0xC4, 0 },
  { 0x2502, 0xB3, 0 },
  { 0x250C, 0xDA, 0 },
  { 0x2510, 0xBF, 0 },
  { 0x2514, 0xC0, 0 },
  { 0x2518, 0xD9, 0 },
  { 0x251C, 0xC3, 0 },
  { 0x2524, 0xB4, 0 },
  { 0x252C, 0xC2, 0 },
  { 0x2534, 0xC1, 0 },
  { 0x253C, 0xC5, 0 },
  { 0x2550, 0xCD, 0 },
  { 0x2551, 0xBA, 0 },
  { 0x2554, 0xC9, 0 },
  { 0x2557, 0xBB, 0 },
  { 0x255A, 0xC8, 0 },
  { 0x255D, 0xBC, 0 },
  { 0x2560, 0xCC, 0 },
  { 0x2563, 0xB9, 0 },
  { 0x2566, 0xCB, 0 },
  { 0x2569, 0xCA, 0 },
  { 0x256C, 0xCE, 0 },
  { 0x2580, 0xDF, 0 },
  { 0x2584, 0xDC, 0 },
  { 0x2588, 0xDB, 0 },
  { 0x2591, 0xB0, 0 },
  { 0x2592, 0xB1, 0 },
  { 0x2593, 0xB2, 0 },
  { 0x25A0, 0xFE, 0 }
};

/* ----------------------------------------------------------------------- */

ImplByteConvertData const aImplIBM852ByteCvtData =
{
    aImplIBM852ToUniTab,
    nullptr,
    nullptr,
    nullptr,
    aImplIBM852ToCharTabEx,
    IBM852UNI_START, IBM852UNI_END,
    NOTABUNI_START, NOTABUNI_END,
    NOTABCHAR_START, NOTABCHAR_END,
    NOTABCHAR_START, NOTABCHAR_END,
    IBM852TOCHARTABEX_COUNT
};

/* ----------------------------------------------------------------------- */

ImplTextEncodingData const aImplIBM852TextEncodingData
    = { { &aImplIBM852ByteCvtData,
          sal::detail::textenc::convertCharToUnicode,
          sal::detail::textenc::convertUnicodeToChar,
          nullptr,
          nullptr,
          nullptr,
          nullptr,
          nullptr,
          nullptr },
        "iso8859-2",
        "ibm852",
        1,
        1,
        1,
        238,
        RTL_TEXTENCODING_INFO_ASCII | RTL_TEXTENCODING_INFO_MIME };
    /* DOS/OS2, SCRIPT_EASTEUROPE, pc code page 852, mac encoding 29 */

/* ======================================================================= */

/* IBM-855 */
/* Dos Standard CharSet for Cyrillic */
/* 1-byte, 0x00-0x7F ASCII without exception */
/* Convert-Tables: mappings/vendors/micsft/pc/cp855.txt from 04/24/96 Version 2.00 */
/* Last-Changes from us: */

/* ----------------------------------------------------------------------- */

#define IBM855UNI_START                 0x80
#define IBM855UNI_END                   0xFF
sal_uInt16 const aImplIBM855ToUniTab[IBM855UNI_END - IBM855UNI_START + 1] =
{
/*       0       1       2       3       4       5       6       7 */
/*       8       9       A       B       C       D       E       F */
    0x0452, 0x0402, 0x0453, 0x0403, 0x0451, 0x0401, 0x0454, 0x0404, /* 0x80 */
    0x0455, 0x0405, 0x0456, 0x0406, 0x0457, 0x0407, 0x0458, 0x0408, /* 0x80 */
    0x0459, 0x0409, 0x045A, 0x040A, 0x045B, 0x040B, 0x045C, 0x040C, /* 0x90 */
    0x045E, 0x040E, 0x045F, 0x040F, 0x044E, 0x042E, 0x044A, 0x042A, /* 0x90 */
    0x0430, 0x0410, 0x0431, 0x0411, 0x0446, 0x0426, 0x0434, 0x0414, /* 0xA0 */
    0x0435, 0x0415, 0x0444, 0x0424, 0x0433, 0x0413, 0x00AB, 0x00BB, /* 0xA0 */
    0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x0445, 0x0425, 0x0438, /* 0xB0 */
    0x0418, 0x2563, 0x2551, 0x2557, 0x255D, 0x0439, 0x0419, 0x2510, /* 0xB0 */
    0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x043A, 0x041A, /* 0xC0 */
    0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x00A4, /* 0xC0 */
    0x043B, 0x041B, 0x043C, 0x041C, 0x043D, 0x041D, 0x043E, 0x041E, /* 0xD0 */
    0x043F, 0x2518, 0x250C, 0x2588, 0x2584, 0x041F, 0x044F, 0x2580, /* 0xD0 */
    0x042F, 0x0440, 0x0420, 0x0441, 0x0421, 0x0442, 0x0422, 0x0443, /* 0xE0 */
    0x0423, 0x0436, 0x0416, 0x0432, 0x0412, 0x044C, 0x042C, 0x2116, /* 0xE0 */
    0x00AD, 0x044B, 0x042B, 0x0437, 0x0417, 0x0448, 0x0428, 0x044D, /* 0xF0 */
    0x042D, 0x0449, 0x0429, 0x0447, 0x0427, 0x00A7, 0x25A0, 0x00A0  /* 0xF0 */
};

/* ----------------------------------------------------------------------- */

#define IBM855CHAR_START                0x0401
#define IBM855CHAR_END                  0x045F
unsigned char const aImplIBM855ToCharTab[IBM855CHAR_END - IBM855CHAR_START + 1] =
{
/*     0     1     2     3     4     5     6     7 */
/*     8     9     A     B     C     D     E     F */
          0x85, 0x81, 0x83, 0x87, 0x89, 0x8B, 0x8D, /* 0x0400 */
    0x8F, 0x91, 0x93, 0x95, 0x97,    0, 0x99, 0x9B, /* 0x0400 */
    0xA1, 0xA3, 0xEC, 0xAD, 0xA7, 0xA9, 0xEA, 0xF4, /* 0x0410 */
    0xB8, 0xBE, 0xC7, 0xD1, 0xD3, 0xD5, 0xD7, 0xDD, /* 0x0410 */
    0xE2, 0xE4, 0xE6, 0xE8, 0xAB, 0xB6, 0xA5, 0xFC, /* 0x0420 */
    0xF6, 0xFA, 0x9F, 0xF2, 0xEE, 0xF8, 0x9D, 0xE0, /* 0x0420 */
    0xA0, 0xA2, 0xEB, 0xAC, 0xA6, 0xA8, 0xE9, 0xF3, /* 0x0430 */
    0xB7, 0xBD, 0xC6, 0xD0, 0xD2, 0xD4, 0xD6, 0xD8, /* 0x0430 */
    0xE1, 0xE3, 0xE5, 0xE7, 0xAA, 0xB5, 0xA4, 0xFB, /* 0x0440 */
    0xF5, 0xF9, 0x9E, 0xF1, 0xED, 0xF7, 0x9C, 0xDE, /* 0x0440 */
       0, 0x84, 0x80, 0x82, 0x86, 0x88, 0x8A, 0x8C, /* 0x0450 */
    0x8E, 0x90, 0x92, 0x94, 0x96,    0, 0x98, 0x9A, /* 0x0450 */
};

/* ----------------------------------------------------------------------- */

#define IBM855TOCHARTABEX_COUNT         36
ImplUniCharTabData const aImplIBM855ToCharTabEx[IBM855TOCHARTABEX_COUNT] =
{
  { 0x00A0, 0xFF, 0 },
  { 0x00A4, 0xCF, 0 },
  { 0x00A7, 0xFD, 0 },
  { 0x00AB, 0xAE, 0 },
  { 0x00AD, 0xF0, 0 },
  { 0x00BB, 0xAF, 0 },
  { 0x2116, 0xEF, 0 },
  { 0x2500, 0xC4, 0 },
  { 0x2502, 0xB3, 0 },
  { 0x250C, 0xDA, 0 },
  { 0x2510, 0xBF, 0 },
  { 0x2514, 0xC0, 0 },
  { 0x2518, 0xD9, 0 },
  { 0x251C, 0xC3, 0 },
  { 0x2524, 0xB4, 0 },
  { 0x252C, 0xC2, 0 },
  { 0x2534, 0xC1, 0 },
  { 0x253C, 0xC5, 0 },
  { 0x2550, 0xCD, 0 },
  { 0x2551, 0xBA, 0 },
  { 0x2554, 0xC9, 0 },
  { 0x2557, 0xBB, 0 },
  { 0x255A, 0xC8, 0 },
  { 0x255D, 0xBC, 0 },
  { 0x2560, 0xCC, 0 },
  { 0x2563, 0xB9, 0 },
  { 0x2566, 0xCB, 0 },
  { 0x2569, 0xCA, 0 },
  { 0x256C, 0xCE, 0 },
  { 0x2580, 0xDF, 0 },
  { 0x2584, 0xDC, 0 },
  { 0x2588, 0xDB, 0 },
  { 0x2591, 0xB0, 0 },
  { 0x2592, 0xB1, 0 },
  { 0x2593, 0xB2, 0 },
  { 0x25A0, 0xFE, 0 }
};

/* ----------------------------------------------------------------------- */

ImplByteConvertData const aImplIBM855ByteCvtData =
{
    aImplIBM855ToUniTab,
    nullptr,
    aImplIBM855ToCharTab,
    nullptr,
    aImplIBM855ToCharTabEx,
    IBM855UNI_START, IBM855UNI_END,
    NOTABUNI_START, NOTABUNI_END,
    IBM855CHAR_START, IBM855CHAR_END,
    NOTABCHAR_START, NOTABCHAR_END,
    IBM855TOCHARTABEX_COUNT
};

/* ----------------------------------------------------------------------- */

ImplTextEncodingData const aImplIBM855TextEncodingData
    = { { &aImplIBM855ByteCvtData,
          sal::detail::textenc::convertCharToUnicode,
          sal::detail::textenc::convertUnicodeToChar,
          nullptr,
          nullptr,
          nullptr,
          nullptr,
          nullptr,
          nullptr },
        "iso8859-5",
        "iso-8859-5",
        1,
        1,
        1,
        204,
        RTL_TEXTENCODING_INFO_ASCII };
    /* DOS/OS2, SCRIPT_CYRILLIC, pc code page 855, mac encoding 7 */

/* ======================================================================= */

/* IBM-857 */
/* Dos Standard CharSet for Turkish */
/* 1-byte, 0x00-0x7F ASCII without exception */
/* Convert-Tables: mappings/vendors/micsft/pc/cp857.txt from 04/24/96 Version 2.00 */
/* Last-Changes from us: */

/* ----------------------------------------------------------------------- */

#define IBM857UNI_START                 0x80
#define IBM857UNI_END                   0xFF
sal_uInt16 const aImplIBM857ToUniTab[IBM857UNI_END - IBM857UNI_START + 1] =
{
/*       0       1       2       3       4       5       6       7 */
/*       8       9       A       B       C       D       E       F */
    0x00C7, 0x00FC, 0x00E9, 0x00E2, 0x00E4, 0x00E0, 0x00E5, 0x00E7, /* 0x80 */
    0x00EA, 0x00EB, 0x00E8, 0x00EF, 0x00EE, 0x0131, 0x00C4, 0x00C5, /* 0x80 */
    0x00C9, 0x00E6, 0x00C6, 0x00F4, 0x00F6, 0x00F2, 0x00FB, 0x00F9, /* 0x90 */
    0x0130, 0x00D6, 0x00DC, 0x00F8, 0x00A3, 0x00D8, 0x015E, 0x015F, /* 0x90 */
    0x00E1, 0x00ED, 0x00F3, 0x00FA, 0x00F1, 0x00D1, 0x011E, 0x011F, /* 0xA0 */
    0x00BF, 0x00AE, 0x00AC, 0x00BD, 0x00BC, 0x00A1, 0x00AB, 0x00BB, /* 0xA0 */
    0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x00C1, 0x00C2, 0x00C0, /* 0xB0 */
    0x00A9, 0x2563, 0x2551, 0x2557, 0x255D, 0x00A2, 0x00A5, 0x2510, /* 0xB0 */
    0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x00E3, 0x00C3, /* 0xC0 */
    0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x00A4, /* 0xC0 */
    0x00BA, 0x00AA, 0x00CA, 0x00CB, 0x00C8,      0, 0x00CD, 0x00CE, /* 0xD0 */
    0x00CF, 0x2518, 0x250C, 0x2588, 0x2584, 0x00A6, 0x00CC, 0x2580, /* 0xD0 */
    0x00D3, 0x00DF, 0x00D4, 0x00D2, 0x00F5, 0x00D5, 0x00B5,      0, /* 0xE0 */
    0x00D7, 0x00DA, 0x00DB, 0x00D9, 0x00EC, 0x00FF, 0x00AF, 0x00B4, /* 0xE0 */
    0x00AD, 0x00B1,      0, 0x00BE, 0x00B6, 0x00A7, 0x00F7, 0x00B8, /* 0xF0 */
    0x00B0, 0x00A8, 0x00B7, 0x00B9, 0x00B3, 0x00B2, 0x25A0, 0x00A0  /* 0xF0 */
};

/* ----------------------------------------------------------------------- */

#define IBM857CHAR_START                0x00A0
#define IBM857CHAR_END                  0x00FF
unsigned char const aImplIBM857ToCharTab[IBM857CHAR_END - IBM857CHAR_START + 1] =
{
/*     0     1     2     3     4     5     6     7 */
/*     8     9     A     B     C     D     E     F */
    0xFF, 0xAD, 0xBD, 0x9C, 0xCF, 0xBE, 0xDD, 0xF5, /* 0x00A0 */
    0xF9, 0xB8, 0xD1, 0xAE, 0xAA, 0xF0, 0xA9, 0xEE, /* 0x00A0 */
    0xF8, 0xF1, 0xFD, 0xFC, 0xEF, 0xE6, 0xF4, 0xFA, /* 0x00B0 */
    0xF7, 0xFB, 0xD0, 0xAF, 0xAC, 0xAB, 0xF3, 0xA8, /* 0x00B0 */
    0xB7, 0xB5, 0xB6, 0xC7, 0x8E, 0x8F, 0x92, 0x80, /* 0x00C0 */
    0xD4, 0x90, 0xD2, 0xD3, 0xDE, 0xD6, 0xD7, 0xD8, /* 0x00C0 */
       0, 0xA5, 0xE3, 0xE0, 0xE2, 0xE5, 0x99, 0xE8, /* 0x00D0 */
    0x9D, 0xEB, 0xE9, 0xEA, 0x9A,    0,    0, 0xE1, /* 0x00D0 */
    0x85, 0xA0, 0x83, 0xC6, 0x84, 0x86, 0x91, 0x87, /* 0x00E0 */
    0x8A, 0x82, 0x88, 0x89, 0xEC, 0xA1, 0x8C, 0x8B, /* 0x00E0 */
       0, 0xA4, 0x95, 0xA2, 0x93, 0xE4, 0x94, 0xF6, /* 0x00F0 */
    0x9B, 0x97, 0xA3, 0x96, 0x81,    0,    0, 0xED  /* 0x00F0 */
};

/* ----------------------------------------------------------------------- */

#define IBM857TOCHARTABEX_COUNT         35
ImplUniCharTabData const aImplIBM857ToCharTabEx[IBM857TOCHARTABEX_COUNT] =
{
  { 0x011E, 0xA6, 0 },
  { 0x011F, 0xA7, 0 },
  { 0x0130, 0x98, 0 },
  { 0x0131, 0x8D, 0 },
  { 0x015E, 0x9E, 0 },
  { 0x015F, 0x9F, 0 },
  { 0x2500, 0xC4, 0 },
  { 0x2502, 0xB3, 0 },
  { 0x250C, 0xDA, 0 },
  { 0x2510, 0xBF, 0 },
  { 0x2514, 0xC0, 0 },
  { 0x2518, 0xD9, 0 },
  { 0x251C, 0xC3, 0 },
  { 0x2524, 0xB4, 0 },
  { 0x252C, 0xC2, 0 },
  { 0x2534, 0xC1, 0 },
  { 0x253C, 0xC5, 0 },
  { 0x2550, 0xCD, 0 },
  { 0x2551, 0xBA, 0 },
  { 0x2554, 0xC9, 0 },
  { 0x2557, 0xBB, 0 },
  { 0x255A, 0xC8, 0 },
  { 0x255D, 0xBC, 0 },
  { 0x2560, 0xCC, 0 },
  { 0x2563, 0xB9, 0 },
  { 0x2566, 0xCB, 0 },
  { 0x2569, 0xCA, 0 },
  { 0x256C, 0xCE, 0 },
  { 0x2580, 0xDF, 0 },
  { 0x2584, 0xDC, 0 },
  { 0x2588, 0xDB, 0 },
  { 0x2591, 0xB0, 0 },
  { 0x2592, 0xB1, 0 },
  { 0x2593, 0xB2, 0 },
  { 0x25A0, 0xFE, 0 }
};

/* ----------------------------------------------------------------------- */

ImplByteConvertData const aImplIBM857ByteCvtData =
{
    aImplIBM857ToUniTab,
    nullptr,
    aImplIBM857ToCharTab,
    nullptr,
    aImplIBM857ToCharTabEx,
    IBM857UNI_START, IBM857UNI_END,
    NOTABUNI_START, NOTABUNI_END,
    IBM857CHAR_START, IBM857CHAR_END,
    NOTABCHAR_START, NOTABCHAR_END,
    IBM857TOCHARTABEX_COUNT
};

/* ----------------------------------------------------------------------- */

ImplTextEncodingData const aImplIBM857TextEncodingData
    = { { &aImplIBM857ByteCvtData,
          sal::detail::textenc::convertCharToUnicode,
          sal::detail::textenc::convertUnicodeToChar,
          nullptr,
          nullptr,
          nullptr,
          nullptr,
          nullptr,
          nullptr },
        "iso8859-9",
        "iso-8859-9",
        1,
        1,
        1,
        162,
        RTL_TEXTENCODING_INFO_ASCII };
    /* DOS/OS2, SCRIPT_TURKISH, pc code page 857, mac encoding 35 */

/* ======================================================================= */

/* IBM-866 */
/* Dos Standard CharSet for CyrillicRussian */
/* 1-byte, 0x00-0x7F ASCII without exception */
/* Convert-Tables: mappings/vendors/micsft/pc/cp866.txt from 04/24/96 Version 2.00 */
/* Last-Changes from us: */

/* ----------------------------------------------------------------------- */

#define IBM866UNI_START                 0x80
#define IBM866UNI_END                   0xFF
sal_uInt16 const aImplIBM866ToUniTab[IBM866UNI_END - IBM866UNI_START + 1] =
{
/*       0       1       2       3       4       5       6       7 */
/*       8       9       A       B       C       D       E       F */
    0x0410, 0x0411, 0x0412, 0x0413, 0x0414, 0x0415, 0x0416, 0x0417, /* 0x80 */
    0x0418, 0x0419, 0x041A, 0x041B, 0x041C, 0x041D, 0x041E, 0x041F, /* 0x80 */
    0x0420, 0x0421, 0x0422, 0x0423, 0x0424, 0x0425, 0x0426, 0x0427, /* 0x90 */
    0x0428, 0x0429, 0x042A, 0x042B, 0x042C, 0x042D, 0x042E, 0x042F, /* 0x90 */
    0x0430, 0x0431, 0x0432, 0x0433, 0x0434, 0x0435, 0x0436, 0x0437, /* 0xA0 */
    0x0438, 0x0439, 0x043A, 0x043B, 0x043C, 0x043D, 0x043E, 0x043F, /* 0xA0 */
    0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556, /* 0xB0 */
    0x2555, 0x2563, 0x2551, 0x2557, 0x255D, 0x255C, 0x255B, 0x2510, /* 0xB0 */
    0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x255E, 0x255F, /* 0xC0 */
    0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x2567, /* 0xC0 */
    0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256B, /* 0xD0 */
    0x256A, 0x2518, 0x250C, 0x2588, 0x2584, 0x258C, 0x2590, 0x2580, /* 0xD0 */
    0x0440, 0x0441, 0x0442, 0x0443, 0x0444, 0x0445, 0x0446, 0x0447, /* 0xE0 */
    0x0448, 0x0449, 0x044A, 0x044B, 0x044C, 0x044D, 0x044E, 0x044F, /* 0xE0 */
    0x0401, 0x0451, 0x0404, 0x0454, 0x0407, 0x0457, 0x040E, 0x045E, /* 0xF0 */
    0x00B0, 0x2219, 0x00B7, 0x221A, 0x2116, 0x00A4, 0x25A0, 0x00A0  /* 0xF0 */
};

/* ----------------------------------------------------------------------- */

#define IBM866CHAR_START                0x0401
#define IBM866CHAR_END                  0x045E
unsigned char const aImplIBM866ToCharTab[IBM866CHAR_END - IBM866CHAR_START + 1] =
{
/*     0     1     2     3     4     5     6     7 */
/*     8     9     A     B     C     D     E     F */
          0xF0,    0,    0, 0xF2,    0,    0, 0xF4, /* 0x0400 */
       0,    0,    0,    0,    0,    0, 0xF6,    0, /* 0x0400 */
    0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, /* 0x0410 */
    0x88, 0x89, 0x8A, 0x8B, 0x8C, 0x8D, 0x8E, 0x8F, /* 0x0410 */
    0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, /* 0x0420 */
    0x98, 0x99, 0x9A, 0x9B, 0x9C, 0x9D, 0x9E, 0x9F, /* 0x0420 */
    0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, /* 0x0430 */
    0xA8, 0xA9, 0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0xAF, /* 0x0430 */
    0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, /* 0x0440 */
    0xE8, 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF, /* 0x0440 */
       0, 0xF1,    0,    0, 0xF3,    0,    0, 0xF5, /* 0x0450 */
       0,    0,    0,    0,    0,    0, 0xF7        /* 0x0450 */
};

/* ----------------------------------------------------------------------- */

#define IBM866TOCHARTABEX_COUNT         56
ImplUniCharTabData const aImplIBM866ToCharTabEx[IBM866TOCHARTABEX_COUNT] =
{
  { 0x00A0, 0xFF, 0 },
  { 0x00A4, 0xFD, 0 },
  { 0x00B0, 0xF8, 0 },
  { 0x00B7, 0xFA, 0 },
  { 0x2116, 0xFC, 0 },
  { 0x2219, 0xF9, 0 },
  { 0x221A, 0xFB, 0 },
  { 0x2500, 0xC4, 0 },
  { 0x2502, 0xB3, 0 },
  { 0x250C, 0xDA, 0 },
  { 0x2510, 0xBF, 0 },
  { 0x2514, 0xC0, 0 },
  { 0x2518, 0xD9, 0 },
  { 0x251C, 0xC3, 0 },
  { 0x2524, 0xB4, 0 },
  { 0x252C, 0xC2, 0 },
  { 0x2534, 0xC1, 0 },
  { 0x253C, 0xC5, 0 },
  { 0x2550, 0xCD, 0 },
  { 0x2551, 0xBA, 0 },
  { 0x2552, 0xD5, 0 },
  { 0x2553, 0xD6, 0 },
  { 0x2554, 0xC9, 0 },
  { 0x2555, 0xB8, 0 },
  { 0x2556, 0xB7, 0 },
  { 0x2557, 0xBB, 0 },
  { 0x2558, 0xD4, 0 },
  { 0x2559, 0xD3, 0 },
  { 0x255A, 0xC8, 0 },
  { 0x255B, 0xBE, 0 },
  { 0x255C, 0xBD, 0 },
  { 0x255D, 0xBC, 0 },
  { 0x255E, 0xC6, 0 },
  { 0x255F, 0xC7, 0 },
  { 0x2560, 0xCC, 0 },
  { 0x2561, 0xB5, 0 },
  { 0x2562, 0xB6, 0 },
  { 0x2563, 0xB9, 0 },
  { 0x2564, 0xD1, 0 },
  { 0x2565, 0xD2, 0 },
  { 0x2566, 0xCB, 0 },
  { 0x2567, 0xCF, 0 },
  { 0x2568, 0xD0, 0 },
  { 0x2569, 0xCA, 0 },
  { 0x256A, 0xD8, 0 },
  { 0x256B, 0xD7, 0 },
  { 0x256C, 0xCE, 0 },
  { 0x2580, 0xDF, 0 },
  { 0x2584, 0xDC, 0 },
  { 0x2588, 0xDB, 0 },
  { 0x258C, 0xDD, 0 },
  { 0x2590, 0xDE, 0 },
  { 0x2591, 0xB0, 0 },
  { 0x2592, 0xB1, 0 },
  { 0x2593, 0xB2, 0 },
  { 0x25A0, 0xFE, 0 }
};

/* ----------------------------------------------------------------------- */

ImplByteConvertData const aImplIBM866ByteCvtData =
{
    aImplIBM866ToUniTab,
    nullptr,
    aImplIBM866ToCharTab,
    nullptr,
    aImplIBM866ToCharTabEx,
    IBM866UNI_START, IBM866UNI_END,
    NOTABUNI_START, NOTABUNI_END,
    IBM866CHAR_START, IBM866CHAR_END,
    NOTABCHAR_START, NOTABCHAR_END,
    IBM866TOCHARTABEX_COUNT
};

/* ----------------------------------------------------------------------- */

ImplTextEncodingData const aImplIBM866TextEncodingData
    = { { &aImplIBM866ByteCvtData,
          sal::detail::textenc::convertCharToUnicode,
          sal::detail::textenc::convertUnicodeToChar,
          nullptr,
          nullptr,
          nullptr,
          nullptr,
          nullptr,
          nullptr },
        "iso8859-5",
        "cp866",
        1,
        1,
        1,
        204,
        RTL_TEXTENCODING_INFO_ASCII | RTL_TEXTENCODING_INFO_MIME };
    /* DOS/OS2, SCRIPT_LATIN, pc code page 866, mac encoding 7 */

/* ======================================================================= */

/* IBM-869 */
/* Dos Standard CharSet for Greek2 */
/* 1-byte, 0x00-0x7F ASCII without exception */
/* Convert-Tables: mappings/vendors/micsft/pc/cp869.txt from 04/24/96 Version 2.00 */
/* Last-Changes from us: */

/* ----------------------------------------------------------------------- */

#define IBM869UNI_START                 0x86
#define IBM869UNI_END                   0xFF
sal_uInt16 const aImplIBM869ToUniTab[IBM869UNI_END - IBM869UNI_START + 1] =
{
/*       0       1       2       3       4       5       6       7 */
/*       8       9       A       B       C       D       E       F */
                                                    0x0386,      0, /* 0x80 */
    0x00B7, 0x00AC, 0x00A6, 0x2018, 0x2019, 0x0388, 0x2015, 0x0389, /* 0x80 */
    0x038A, 0x03AA, 0x038C,      0,      0, 0x038E, 0x03AB, 0x00A9, /* 0x90 */
    0x038F, 0x00B2, 0x00B3, 0x03AC, 0x00A3, 0x03AD, 0x03AE, 0x03AF, /* 0x90 */
    0x03CA, 0x0390, 0x03CC, 0x03CD, 0x0391, 0x0392, 0x0393, 0x0394, /* 0xA0 */
    0x0395, 0x0396, 0x0397, 0x00BD, 0x0398, 0x0399, 0x00AB, 0x00BB, /* 0xA0 */
    0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x039A, 0x039B, 0x039C, /* 0xB0 */
    0x039D, 0x2563, 0x2551, 0x2557, 0x255D, 0x039E, 0x039F, 0x2510, /* 0xB0 */
    0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x03A0, 0x03A1, /* 0xC0 */
    0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x03A3, /* 0xC0 */
    0x03A4, 0x03A5, 0x03A6, 0x03A7, 0x03A8, 0x03A9, 0x03B1, 0x03B2, /* 0xD0 */
    0x03B3, 0x2518, 0x250C, 0x2588, 0x2584, 0x03B4, 0x03B5, 0x2580, /* 0xD0 */
    0x03B6, 0x03B7, 0x03B8, 0x03B9, 0x03BA, 0x03BB, 0x03BC, 0x03BD, /* 0xE0 */
    0x03BE, 0x03BF, 0x03C0, 0x03C1, 0x03C3, 0x03C2, 0x03C4, 0x0384, /* 0xE0 */
    0x00AD, 0x00B1, 0x03C5, 0x03C6, 0x03C7, 0x00A7, 0x03C8, 0x0385, /* 0xF0 */
    0x00B0, 0x00A8, 0x03C9, 0x03CB, 0x03B0, 0x03CE, 0x25A0, 0x00A0  /* 0xF0 */
};

/* ----------------------------------------------------------------------- */

#define IBM869CHAR_START                0x0384
#define IBM869CHAR_END                  0x03CE
unsigned char const aImplIBM869ToCharTab[IBM869CHAR_END - IBM869CHAR_START + 1] =
{
/*     0     1     2     3     4     5     6     7 */
/*     8     9     A     B     C     D     E     F */
                            0xEF, 0xF7, 0x86,    0, /* 0x0380 */
    0x8D, 0x8F, 0x90,    0, 0x92,    0, 0x95, 0x98, /* 0x0380 */
    0xA1, 0xA4, 0xA5, 0xA6, 0xA7, 0xA8, 0xA9, 0xAA, /* 0x0390 */
    0xAC, 0xAD, 0xB5, 0xB6, 0xB7, 0xB8, 0xBD, 0xBE, /* 0x0390 */
    0xC6, 0xC7,    0, 0xCF, 0xD0, 0xD1, 0xD2, 0xD3, /* 0x03A0 */
    0xD4, 0xD5, 0x91, 0x96, 0x9B, 0x9D, 0x9E, 0x9F, /* 0x03A0 */
    0xFC, 0xD6, 0xD7, 0xD8, 0xDD, 0xDE, 0xE0, 0xE1, /* 0x03B0 */
    0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, 0xE8, 0xE9, /* 0x03B0 */
    0xEA, 0xEB, 0xED, 0xEC, 0xEE, 0xF2, 0xF3, 0xF4, /* 0x03C0 */
    0xF6, 0xFA, 0xA0, 0xFB, 0xA2, 0xA3, 0xFD        /* 0x03C0 */
};

/* ----------------------------------------------------------------------- */

#define IBM869TOCHARTABEX_COUNT         48
ImplUniCharTabData const aImplIBM869ToCharTabEx[IBM869TOCHARTABEX_COUNT] =
{
  { 0x00A0, 0xFF, 0 },
  { 0x00A3, 0x9C, 0 },
  { 0x00A6, 0x8A, 0 },
  { 0x00A7, 0xF5, 0 },
  { 0x00A8, 0xF9, 0 },
  { 0x00A9, 0x97, 0 },
  { 0x00AB, 0xAE, 0 },
  { 0x00AC, 0x89, 0 },
  { 0x00AD, 0xF0, 0 },
  { 0x00B0, 0xF8, 0 },
  { 0x00B1, 0xF1, 0 },
  { 0x00B2, 0x99, 0 },
  { 0x00B3, 0x9A, 0 },
  { 0x00B7, 0x88, 0 },
  { 0x00BB, 0xAF, 0 },
  { 0x00BD, 0xAB, 0 },
  { 0x2015, 0x8E, 0 },
  { 0x2018, 0x8B, 0 },
  { 0x2019, 0x8C, 0 },
  { 0x2500, 0xC4, 0 },
  { 0x2502, 0xB3, 0 },
  { 0x250C, 0xDA, 0 },
  { 0x2510, 0xBF, 0 },
  { 0x2514, 0xC0, 0 },
  { 0x2518, 0xD9, 0 },
  { 0x251C, 0xC3, 0 },
  { 0x2524, 0xB4, 0 },
  { 0x252C, 0xC2, 0 },
  { 0x2534, 0xC1, 0 },
  { 0x253C, 0xC5, 0 },
  { 0x2550, 0xCD, 0 },
  { 0x2551, 0xBA, 0 },
  { 0x2554, 0xC9, 0 },
  { 0x2557, 0xBB, 0 },
  { 0x255A, 0xC8, 0 },
  { 0x255D, 0xBC, 0 },
  { 0x2560, 0xCC, 0 },
  { 0x2563, 0xB9, 0 },
  { 0x2566, 0xCB, 0 },
  { 0x2569, 0xCA, 0 },
  { 0x256C, 0xCE, 0 },
  { 0x2580, 0xDF, 0 },
  { 0x2584, 0xDC, 0 },
  { 0x2588, 0xDB, 0 },
  { 0x2591, 0xB0, 0 },
  { 0x2592, 0xB1, 0 },
  { 0x2593, 0xB2, 0 },
  { 0x25A0, 0xFE, 0 }
};

/* ----------------------------------------------------------------------- */

ImplByteConvertData const aImplIBM869ByteCvtData =
{
    aImplIBM869ToUniTab,
    nullptr,
    aImplIBM869ToCharTab,
    nullptr,
    aImplIBM869ToCharTabEx,
    IBM869UNI_START, IBM869UNI_END,
    NOTABUNI_START, NOTABUNI_END,
    IBM869CHAR_START, IBM869CHAR_END,
    NOTABCHAR_START, NOTABCHAR_END,
    IBM869TOCHARTABEX_COUNT
};

/* ----------------------------------------------------------------------- */

ImplTextEncodingData const aImplIBM869TextEncodingData
    = { { &aImplIBM869ByteCvtData,
          sal::detail::textenc::convertCharToUnicode,
          sal::detail::textenc::convertUnicodeToChar,
          nullptr,
          nullptr,
          nullptr,
          nullptr,
          nullptr,
          nullptr },
        "iso8859-7",
        "iso-8859-7",
        1,
        1,
        1,
        161,
        RTL_TEXTENCODING_INFO_ASCII };
    /* DOS/OS2, SCRIPT_LATIN, pc code page 869, mac encoding 6 */

/* ======================================================================= */

/* MS-1250 */
/* Windows CodePage for Eastern European (WinLatin2) */
/* 1-byte, 0x00-0x7F ASCII without exception */
/* Convert-Tables: mappings/vendors/micsft/windows/cp1250.txt from 04/15/98 Version 2.01 */
/* Last-Changes from us: */

/* ----------------------------------------------------------------------- */

#define MS1250UNI_START                 0x80
#define MS1250UNI_END                   0xFF
sal_uInt16 const aImplMS1250ToUniTab[MS1250UNI_END - MS1250UNI_START + 1] =
{
/*  0       1       2       3       4       5       6       7 */
/*  8       9       A       B       C       D       E       F */
    0x20AC,      0, 0x201A,      0, 0x201E, 0x2026, 0x2020, 0x2021, /* 0x80 */
         0, 0x2030, 0x0160, 0x2039, 0x015A, 0x0164, 0x017D, 0x0179, /* 0x80 */
         0, 0x2018, 0x2019, 0x201C, 0x201D, 0x2022, 0x2013, 0x2014, /* 0x90 */
         0, 0x2122, 0x0161, 0x203A, 0x015B, 0x0165, 0x017E, 0x017A, /* 0x90 */
    0x00A0, 0x02C7, 0x02D8, 0x0141, 0x00A4, 0x0104, 0x00A6, 0x00A7, /* 0xA0 */
    0x00A8, 0x00A9, 0x015E, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x017B, /* 0xA0 */
    0x00B0, 0x00B1, 0x02DB, 0x0142, 0x00B4, 0x00B5, 0x00B6, 0x00B7, /* 0xB0 */
    0x00B8, 0x0105, 0x015F, 0x00BB, 0x013D, 0x02DD, 0x013E, 0x017C, /* 0xB0 */
    0x0154, 0x00C1, 0x00C2, 0x0102, 0x00C4, 0x0139, 0x0106, 0x00C7, /* 0xC0 */
    0x010C, 0x00C9, 0x0118, 0x00CB, 0x011A, 0x00CD, 0x00CE, 0x010E, /* 0xC0 */
    0x0110, 0x0143, 0x0147, 0x00D3, 0x00D4, 0x0150, 0x00D6, 0x00D7, /* 0xD0 */
    0x0158, 0x016E, 0x00DA, 0x0170, 0x00DC, 0x00DD, 0x0162, 0x00DF, /* 0xD0 */
    0x0155, 0x00E1, 0x00E2, 0x0103, 0x00E4, 0x013A, 0x0107, 0x00E7, /* 0xE0 */
    0x010D, 0x00E9, 0x0119, 0x00EB, 0x011B, 0x00ED, 0x00EE, 0x010F, /* 0xE0 */
    0x0111, 0x0144, 0x0148, 0x00F3, 0x00F4, 0x0151, 0x00F6, 0x00F7, /* 0xF0 */
    0x0159, 0x016F, 0x00FA, 0x0171, 0x00FC, 0x00FD, 0x0163, 0x02D9  /* 0xF0 */
};

/* ----------------------------------------------------------------------- */

#define MS1250TOCHARTABEX_COUNT         123
ImplUniCharTabData const aImplMS1250ToCharTabEx[MS1250TOCHARTABEX_COUNT] =
{
  { 0x00A0, 0xA0, 0 },
  { 0x00A4, 0xA4, 0 },
  { 0x00A6, 0xA6, 0 },
  { 0x00A7, 0xA7, 0 },
  { 0x00A8, 0xA8, 0 },
  { 0x00A9, 0xA9, 0 },
  { 0x00AB, 0xAB, 0 },
  { 0x00AC, 0xAC, 0 },
  { 0x00AD, 0xAD, 0 },
  { 0x00AE, 0xAE, 0 },
  { 0x00B0, 0xB0, 0 },
  { 0x00B1, 0xB1, 0 },
  { 0x00B4, 0xB4, 0 },
  { 0x00B5, 0xB5, 0 },
  { 0x00B6, 0xB6, 0 },
  { 0x00B7, 0xB7, 0 },
  { 0x00B8, 0xB8, 0 },
  { 0x00BB, 0xBB, 0 },
  { 0x00C1, 0xC1, 0 },
  { 0x00C2, 0xC2, 0 },
  { 0x00C4, 0xC4, 0 },
  { 0x00C7, 0xC7, 0 },
  { 0x00C9, 0xC9, 0 },
  { 0x00CB, 0xCB, 0 },
  { 0x00CD, 0xCD, 0 },
  { 0x00CE, 0xCE, 0 },
  { 0x00D3, 0xD3, 0 },
  { 0x00D4, 0xD4, 0 },
  { 0x00D6, 0xD6, 0 },
  { 0x00D7, 0xD7, 0 },
  { 0x00DA, 0xDA, 0 },
  { 0x00DC, 0xDC, 0 },
  { 0x00DD, 0xDD, 0 },
  { 0x00DF, 0xDF, 0 },
  { 0x00E1, 0xE1, 0 },
  { 0x00E2, 0xE2, 0 },
  { 0x00E4, 0xE4, 0 },
  { 0x00E7, 0xE7, 0 },
  { 0x00E9, 0xE9, 0 },
  { 0x00EB, 0xEB, 0 },
  { 0x00ED, 0xED, 0 },
  { 0x00EE, 0xEE, 0 },
  { 0x00F3, 0xF3, 0 },
  { 0x00F4, 0xF4, 0 },
  { 0x00F6, 0xF6, 0 },
  { 0x00F7, 0xF7, 0 },
  { 0x00FA, 0xFA, 0 },
  { 0x00FC, 0xFC, 0 },
  { 0x00FD, 0xFD, 0 },
  { 0x0102, 0xC3, 0 },
  { 0x0103, 0xE3, 0 },
  { 0x0104, 0xA5, 0 },
  { 0x0105, 0xB9, 0 },
  { 0x0106, 0xC6, 0 },
  { 0x0107, 0xE6, 0 },
  { 0x010C, 0xC8, 0 },
  { 0x010D, 0xE8, 0 },
  { 0x010E, 0xCF, 0 },
  { 0x010F, 0xEF, 0 },
  { 0x0110, 0xD0, 0 },
  { 0x0111, 0xF0, 0 },
  { 0x0118, 0xCA, 0 },
  { 0x0119, 0xEA, 0 },
  { 0x011A, 0xCC, 0 },
  { 0x011B, 0xEC, 0 },
  { 0x0139, 0xC5, 0 },
  { 0x013A, 0xE5, 0 },
  { 0x013D, 0xBC, 0 },
  { 0x013E, 0xBE, 0 },
  { 0x0141, 0xA3, 0 },
  { 0x0142, 0xB3, 0 },
  { 0x0143, 0xD1, 0 },
  { 0x0144, 0xF1, 0 },
  { 0x0147, 0xD2, 0 },
  { 0x0148, 0xF2, 0 },
  { 0x0150, 0xD5, 0 },
  { 0x0151, 0xF5, 0 },
  { 0x0154, 0xC0, 0 },
  { 0x0155, 0xE0, 0 },
  { 0x0158, 0xD8, 0 },
  { 0x0159, 0xF8, 0 },
  { 0x015A, 0x8C, 0 },
  { 0x015B, 0x9C, 0 },
  { 0x015E, 0xAA, 0 },
  { 0x015F, 0xBA, 0 },
  { 0x0160, 0x8A, 0 },
  { 0x0161, 0x9A, 0 },
  { 0x0162, 0xDE, 0 },
  { 0x0163, 0xFE, 0 },
  { 0x0164, 0x8D, 0 },
  { 0x0165, 0x9D, 0 },
  { 0x016E, 0xD9, 0 },
  { 0x016F, 0xF9, 0 },
  { 0x0170, 0xDB, 0 },
  { 0x0171, 0xFB, 0 },
  { 0x0179, 0x8F, 0 },
  { 0x017A, 0x9F, 0 },
  { 0x017B, 0xAF, 0 },
  { 0x017C, 0xBF, 0 },
  { 0x017D, 0x8E, 0 },
  { 0x017E, 0x9E, 0 },
  { 0x02C7, 0xA1, 0 },
  { 0x02D8, 0xA2, 0 },
  { 0x02D9, 0xFF, 0 },
  { 0x02DB, 0xB2, 0 },
  { 0x02DD, 0xBD, 0 },
  { 0x2013, 0x96, 0 },
  { 0x2014, 0x97, 0 },
  { 0x2018, 0x91, 0 },
  { 0x2019, 0x92, 0 },
  { 0x201A, 0x82, 0 },
  { 0x201C, 0x93, 0 },
  { 0x201D, 0x94, 0 },
  { 0x201E, 0x84, 0 },
  { 0x2020, 0x86, 0 },
  { 0x2021, 0x87, 0 },
  { 0x2022, 0x95, 0 },
  { 0x2026, 0x85, 0 },
  { 0x2030, 0x89, 0 },
  { 0x2039, 0x8B, 0 },
  { 0x203A, 0x9B, 0 },
  { 0x20AC, 0x80, 0 },
  { 0x2122, 0x99, 0 }
};

/* ----------------------------------------------------------------------- */

ImplByteConvertData const aImplMS1250ByteCvtData =
{
    aImplMS1250ToUniTab,
    nullptr,
    nullptr,
    nullptr,
    aImplMS1250ToCharTabEx,
    MS1250UNI_START, MS1250UNI_END,
    NOTABUNI_START, NOTABUNI_END,
    NOTABCHAR_START, NOTABCHAR_END,
    NOTABCHAR_START, NOTABCHAR_END,
    MS1250TOCHARTABEX_COUNT
};

/* ----------------------------------------------------------------------- */

ImplTextEncodingData const aImplMS1250TextEncodingData
    = { { &aImplMS1250ByteCvtData,
          sal::detail::textenc::convertCharToUnicode,
          sal::detail::textenc::convertUnicodeToChar,
          nullptr,
          nullptr,
          nullptr,
          nullptr,
          nullptr,
          nullptr },
        "iso8859-2",
        "windows-1250",
        1,
        1,
        1,
        238,
        RTL_TEXTENCODING_INFO_ASCII | RTL_TEXTENCODING_INFO_MIME };
    /* WIN, SCRIPT_EASTEUROPE, pc code page 852, mac encoding 29 */

/* ======================================================================= */

/* MS-1251 */
/* Windows CodePage for Cyrillic */
/* 1-byte, 0x00-0x7F ASCII without exception */
/* Convert-Tables: mappings/vendors/micsft/windows/cp1251.txt from 04/15/98 Version 2.01 */
/* Last-Changes from us: */

/* ----------------------------------------------------------------------- */

#define MS1251UNI_START                 0x80
#define MS1251UNI_END                   0xFF
sal_uInt16 const aImplMS1251ToUniTab[MS1251UNI_END - MS1251UNI_START + 1] =
{
/*       0       1       2       3       4       5       6       7 */
/*       8       9       A       B       C       D       E       F */
    0x0402, 0x0403, 0x201A, 0x0453, 0x201E, 0x2026, 0x2020, 0x2021, /* 0x80 */
    0x20AC, 0x2030, 0x0409, 0x2039, 0x040A, 0x040C, 0x040B, 0x040F, /* 0x80 */
    0x0452, 0x2018, 0x2019, 0x201C, 0x201D, 0x2022, 0x2013, 0x2014, /* 0x90 */
         0, 0x2122, 0x0459, 0x203A, 0x045A, 0x045C, 0x045B, 0x045F, /* 0x90 */
    0x00A0, 0x040E, 0x045E, 0x0408, 0x00A4, 0x0490, 0x00A6, 0x00A7, /* 0xA0 */
    0x0401, 0x00A9, 0x0404, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x0407, /* 0xA0 */
    0x00B0, 0x00B1, 0x0406, 0x0456, 0x0491, 0x00B5, 0x00B6, 0x00B7, /* 0xB0 */
    0x0451, 0x2116, 0x0454, 0x00BB, 0x0458, 0x0405, 0x0455, 0x0457, /* 0xB0 */
    0x0410, 0x0411, 0x0412, 0x0413, 0x0414, 0x0415, 0x0416, 0x0417, /* 0xC0 */
    0x0418, 0x0419, 0x041A, 0x041B, 0x041C, 0x041D, 0x041E, 0x041F, /* 0xC0 */
    0x0420, 0x0421, 0x0422, 0x0423, 0x0424, 0x0425, 0x0426, 0x0427, /* 0xD0 */
    0x0428, 0x0429, 0x042A, 0x042B, 0x042C, 0x042D, 0x042E, 0x042F, /* 0xD0 */
    0x0430, 0x0431, 0x0432, 0x0433, 0x0434, 0x0435, 0x0436, 0x0437, /* 0xE0 */
    0x0438, 0x0439, 0x043A, 0x043B, 0x043C, 0x043D, 0x043E, 0x043F, /* 0xE0 */
    0x0440, 0x0441, 0x0442, 0x0443, 0x0444, 0x0445, 0x0446, 0x0447, /* 0xF0 */
    0x0448, 0x0449, 0x044A, 0x044B, 0x044C, 0x044D, 0x044E, 0x044F  /* 0xF0 */
};

/* ----------------------------------------------------------------------- */

#define MS1251CHAR_START                0x0401
#define MS1251CHAR_END                  0x045F
unsigned char const aImplMS1251ToCharTab[MS1251CHAR_END - MS1251CHAR_START + 1] =
{
/*     0     1     2     3     4     5     6     7 */
/*     8     9     A     B     C     D     E     F */
          0xA8, 0x80, 0x81, 0xAA, 0xBD, 0xB2, 0xAF, /* 0x0400 */
    0xA3, 0x8A, 0x8C, 0x8E, 0x8D,    0, 0xA1, 0x8F, /* 0x0400 */
    0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, /* 0x0410 */
    0xC8, 0xC9, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF, /* 0x0410 */
    0xD0, 0xD1, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6, 0xD7, /* 0x0420 */
    0xD8, 0xD9, 0xDA, 0xDB, 0xDC, 0xDD, 0xDE, 0xDF, /* 0x0420 */
    0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, /* 0x0430 */
    0xE8, 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF, /* 0x0430 */
    0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7, /* 0x0440 */
    0xF8, 0xF9, 0xFA, 0xFB, 0xFC, 0xFD, 0xFE, 0xFF, /* 0x0440 */
       0, 0xB8, 0x90, 0x83, 0xBA, 0xBE, 0xB3, 0xBF, /* 0x0450 */
    0xBC, 0x9A, 0x9C, 0x9E, 0x9D,    0, 0xA2, 0x9F  /* 0x0450 */
};

/* ----------------------------------------------------------------------- */

#define MS1251TOCHARTABEX_COUNT         35
ImplUniCharTabData const aImplMS1251ToCharTabEx[MS1251TOCHARTABEX_COUNT] =
{
  { 0x00A0, 0xA0, 0 },
  { 0x00A4, 0xA4, 0 },
  { 0x00A6, 0xA6, 0 },
  { 0x00A7, 0xA7, 0 },
  { 0x00A9, 0xA9, 0 },
  { 0x00AB, 0xAB, 0 },
  { 0x00AC, 0xAC, 0 },
  { 0x00AD, 0xAD, 0 },
  { 0x00AE, 0xAE, 0 },
  { 0x00B0, 0xB0, 0 },
  { 0x00B1, 0xB1, 0 },
  { 0x00B5, 0xB5, 0 },
  { 0x00B6, 0xB6, 0 },
  { 0x00B7, 0xB7, 0 },
  { 0x00BB, 0xBB, 0 },
  { 0x0490, 0xA5, 0 },
  { 0x0491, 0xB4, 0 },
  { 0x2013, 0x96, 0 },
  { 0x2014, 0x97, 0 },
  { 0x2018, 0x91, 0 },
  { 0x2019, 0x92, 0 },
  { 0x201A, 0x82, 0 },
  { 0x201C, 0x93, 0 },
  { 0x201D, 0x94, 0 },
  { 0x201E, 0x84, 0 },
  { 0x2020, 0x86, 0 },
  { 0x2021, 0x87, 0 },
  { 0x2022, 0x95, 0 },
  { 0x2026, 0x85, 0 },
  { 0x2030, 0x89, 0 },
  { 0x2039, 0x8B, 0 },
  { 0x203A, 0x9B, 0 },
  { 0x20AC, 0x88, 0 },
  { 0x2116, 0xB9, 0 },
  { 0x2122, 0x99, 0 }
};

/* ----------------------------------------------------------------------- */

ImplByteConvertData const aImplMS1251ByteCvtData =
{
    aImplMS1251ToUniTab,
    nullptr,
    aImplMS1251ToCharTab,
    nullptr,
    aImplMS1251ToCharTabEx,
    MS1251UNI_START, MS1251UNI_END,
    NOTABUNI_START, NOTABUNI_END,
    MS1251CHAR_START, MS1251CHAR_END,
    NOTABCHAR_START, NOTABCHAR_END,
    MS1251TOCHARTABEX_COUNT
};

/* ----------------------------------------------------------------------- */

ImplTextEncodingData const aImplMS1251TextEncodingData
    = { { &aImplMS1251ByteCvtData,
          sal::detail::textenc::convertCharToUnicode,
          sal::detail::textenc::convertUnicodeToChar,
          nullptr,
          nullptr,
          nullptr,
          nullptr,
          nullptr,
          nullptr },
        "iso8859-5",
        "windows-1251",
        1,
        1,
        1,
        204,
        RTL_TEXTENCODING_INFO_ASCII | RTL_TEXTENCODING_INFO_MIME };
    /* WIN, SCRIPT_CYRILLIC, pc code page 866 (855?), mac encoding 7 */

/* ======================================================================= */

/* MS-1253 */
/* Windows Standard CharSet for Greek */
/* 1-byte, 0x00-0x7F ASCII without exception */
/* Convert-Tables: mappings/vendors/micsft/windows/cp1253.txt from 04/15/98 Version 2.01 */
/* Last-Changes from us: */

/* ----------------------------------------------------------------------- */

#define MS1253UNI_START                 0x80
#define MS1253UNI_END                   0xFF
sal_uInt16 const aImplMS1253ToUniTab[MS1253UNI_END - MS1253UNI_START + 1] =
{
/*       0       1       2       3       4       5       6       7 */
/*       8       9       A       B       C       D       E       F */
    0x20AC,      0, 0x201A, 0x0192, 0x201E, 0x2026, 0x2020, 0x2021, /* 0x80 */
         0, 0x2030,      0, 0x2039,      0,      0,      0,      0, /* 0x80 */
         0, 0x2018, 0x2019, 0x201C, 0x201D, 0x2022, 0x2013, 0x2014, /* 0x90 */
         0, 0x2122,      0, 0x203A,      0,      0,      0,      0, /* 0x90 */
    0x00A0, 0x0385, 0x0386, 0x00A3, 0x00A4, 0x00A5, 0x00A6, 0x00A7, /* 0xA0 */
    0x00A8, 0x00A9,      0, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x2015, /* 0xA0 */
    0x00B0, 0x00B1, 0x00B2, 0x00B3, 0x0384, 0x00B5, 0x00B6, 0x00B7, /* 0xB0 */
    0x0388, 0x0389, 0x038A, 0x00BB, 0x038C, 0x00BD, 0x038E, 0x038F, /* 0xB0 */
    0x0390, 0x0391, 0x0392, 0x0393, 0x0394, 0x0395, 0x0396, 0x0397, /* 0xC0 */
    0x0398, 0x0399, 0x039A, 0x039B, 0x039C, 0x039D, 0x039E, 0x039F, /* 0xC0 */
    0x03A0, 0x03A1,      0, 0x03A3, 0x03A4, 0x03A5, 0x03A6, 0x03A7, /* 0xD0 */
    0x03A8, 0x03A9, 0x03AA, 0x03AB, 0x03AC, 0x03AD, 0x03AE, 0x03AF, /* 0xD0 */
    0x03B0, 0x03B1, 0x03B2, 0x03B3, 0x03B4, 0x03B5, 0x03B6, 0x03B7, /* 0xE0 */
    0x03B8, 0x03B9, 0x03BA, 0x03BB, 0x03BC, 0x03BD, 0x03BE, 0x03BF, /* 0xE0 */
    0x03C0, 0x03C1, 0x03C2, 0x03C3, 0x03C4, 0x03C5, 0x03C6, 0x03C7, /* 0xF0 */
    0x03C8, 0x03C9, 0x03CA, 0x03CB, 0x03CC, 0x03CD, 0x03CE,      0  /* 0xF0 */
};

/* ----------------------------------------------------------------------- */

#define MS1253CHAR_START                0x0384
#define MS1253CHAR_END                  0x03CE
unsigned char const aImplMS1253ToCharTab[MS1253CHAR_END - MS1253CHAR_START + 1] =
{
/*     0     1     2     3     4     5     6     7 */
/*     8     9     A     B     C     D     E     F */
                            0xB4, 0xA1, 0xA2,    0, /* 0x0380 */
    0xB8, 0xB9, 0xBA,    0, 0xBC,    0, 0xBE, 0xBF, /* 0x0380 */
    0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, /* 0x0390 */
    0xC8, 0xC9, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF, /* 0x0390 */
    0xD0, 0xD1,    0, 0xD3, 0xD4, 0xD5, 0xD6, 0xD7, /* 0x03A0 */
    0xD8, 0xD9, 0xDA, 0xDB, 0xDC, 0xDD, 0xDE, 0xDF, /* 0x03A0 */
    0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, /* 0x03B0 */
    0xE8, 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF, /* 0x03B0 */
    0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7, /* 0x03C0 */
    0xF8, 0xF9, 0xFA, 0xFB, 0xFC, 0xFD, 0xFE        /* 0x03C0 */
};

/* ----------------------------------------------------------------------- */

#define MS1253TOCHARTABEX_COUNT         40
ImplUniCharTabData const aImplMS1253ToCharTabEx[MS1253TOCHARTABEX_COUNT] =
{
  { 0x00A0, 0xA0, 0 },
  { 0x00A3, 0xA3, 0 },
  { 0x00A4, 0xA4, 0 },
  { 0x00A5, 0xA5, 0 },
  { 0x00A6, 0xA6, 0 },
  { 0x00A7, 0xA7, 0 },
  { 0x00A8, 0xA8, 0 },
  { 0x00A9, 0xA9, 0 },
  { 0x00AB, 0xAB, 0 },
  { 0x00AC, 0xAC, 0 },
  { 0x00AD, 0xAD, 0 },
  { 0x00AE, 0xAE, 0 },
  { 0x00B0, 0xB0, 0 },
  { 0x00B1, 0xB1, 0 },
  { 0x00B2, 0xB2, 0 },
  { 0x00B3, 0xB3, 0 },
  { 0x00B5, 0xB5, 0 },
  { 0x00B6, 0xB6, 0 },
  { 0x00B7, 0xB7, 0 },
  { 0x00BB, 0xBB, 0 },
  { 0x00BD, 0xBD, 0 },
  { 0x0192, 0x83, 0 },
  { 0x2013, 0x96, 0 },
  { 0x2014, 0x97, 0 },
  { 0x2015, 0xAF, 0 },
  { 0x2018, 0x91, 0 },
  { 0x2019, 0x92, 0 },
  { 0x201A, 0x82, 0 },
  { 0x201C, 0x93, 0 },
  { 0x201D, 0x94, 0 },
  { 0x201E, 0x84, 0 },
  { 0x2020, 0x86, 0 },
  { 0x2021, 0x87, 0 },
  { 0x2022, 0x95, 0 },
  { 0x2026, 0x85, 0 },
  { 0x2030, 0x89, 0 },
  { 0x2039, 0x8B, 0 },
  { 0x203A, 0x9B, 0 },
  { 0x20AC, 0x80, 0 },
  { 0x2122, 0x99, 0 }
};

/* ----------------------------------------------------------------------- */

ImplByteConvertData const aImplMS1253ByteCvtData =
{
    aImplMS1253ToUniTab,
    nullptr,
    aImplMS1253ToCharTab,
    nullptr,
    aImplMS1253ToCharTabEx,
    MS1253UNI_START, MS1253UNI_END,
    NOTABUNI_START, NOTABUNI_END,
    MS1253CHAR_START, MS1253CHAR_END,
    NOTABCHAR_START, NOTABCHAR_END,
    MS1253TOCHARTABEX_COUNT
};

/* ----------------------------------------------------------------------- */

ImplTextEncodingData const aImplMS1253TextEncodingData
    = { { &aImplMS1253ByteCvtData,
          sal::detail::textenc::convertCharToUnicode,
          sal::detail::textenc::convertUnicodeToChar,
          nullptr,
          nullptr,
          nullptr,
          nullptr,
          nullptr,
          nullptr },
        "iso8859-7",
        "windows-1253",
        1,
        1,
        1,
        161,
        RTL_TEXTENCODING_INFO_ASCII | RTL_TEXTENCODING_INFO_MIME };
    /* WIN, SCRIPT_GREEK, pc code page 869, mac encoding 6 */

/* ======================================================================= */

/* MS-1254 */
/* Windows Standard CharSet for Turkish */
/* 1-byte, 0x00-0x7F ASCII without exception */
/* Convert-Tables: mappings/vendors/micsft/windows/cp1254.txt from 04/15/98 Version 2.01 */
/* Last-Changes from us: */

/* ----------------------------------------------------------------------- */

#define MS1254UNI_START                 0x80
#define MS1254UNI_END                   0xFF
sal_uInt16 const aImplMS1254ToUniTab[MS1254UNI_END - MS1254UNI_START + 1] =
{
/*       0       1       2       3       4       5       6       7 */
/*       8       9       A       B       C       D       E       F */
    0x20AC,      0, 0x201A, 0x0192, 0x201E, 0x2026, 0x2020, 0x2021, /* 0x80 */
    0x02C6, 0x2030, 0x0160, 0x2039, 0x0152,      0,      0,      0, /* 0x80 */
         0, 0x2018, 0x2019, 0x201C, 0x201D, 0x2022, 0x2013, 0x2014, /* 0x90 */
    0x02DC, 0x2122, 0x0161, 0x203A, 0x0153,      0,      0, 0x0178, /* 0x90 */
    0x00A0, 0x00A1, 0x00A2, 0x00A3, 0x00A4, 0x00A5, 0x00A6, 0x00A7, /* 0xA0 */
    0x00A8, 0x00A9, 0x00AA, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x00AF, /* 0xA0 */
    0x00B0, 0x00B1, 0x00B2, 0x00B3, 0x00B4, 0x00B5, 0x00B6, 0x00B7, /* 0xB0 */
    0x00B8, 0x00B9, 0x00BA, 0x00BB, 0x00BC, 0x00BD, 0x00BE, 0x00BF, /* 0xB0 */
    0x00C0, 0x00C1, 0x00C2, 0x00C3, 0x00C4, 0x00C5, 0x00C6, 0x00C7, /* 0xC0 */
    0x00C8, 0x00C9, 0x00CA, 0x00CB, 0x00CC, 0x00CD, 0x00CE, 0x00CF, /* 0xC0 */
    0x011E, 0x00D1, 0x00D2, 0x00D3, 0x00D4, 0x00D5, 0x00D6, 0x00D7, /* 0xD0 */
    0x00D8, 0x00D9, 0x00DA, 0x00DB, 0x00DC, 0x0130, 0x015E, 0x00DF, /* 0xD0 */
    0x00E0, 0x00E1, 0x00E2, 0x00E3, 0x00E4, 0x00E5, 0x00E6, 0x00E7, /* 0xE0 */
    0x00E8, 0x00E9, 0x00EA, 0x00EB, 0x00EC, 0x00ED, 0x00EE, 0x00EF, /* 0xE0 */
    0x011F, 0x00F1, 0x00F2, 0x00F3, 0x00F4, 0x00F5, 0x00F6, 0x00F7, /* 0xF0 */
    0x00F8, 0x00F9, 0x00FA, 0x00FB, 0x00FC, 0x0131, 0x015F, 0x00FF  /* 0xF0 */
};

/* ----------------------------------------------------------------------- */

#define MS1254CHAR_START                0x00A0
#define MS1254CHAR_END                  0x00FF
unsigned char const aImplMS1254ToCharTab[MS1254CHAR_END - MS1254CHAR_START + 1] =
{
/*     0     1     2     3     4     5     6     7 */
/*     8     9     A     B     C     D     E     F */
    0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, /* 0x00A0 */
    0xA8, 0xA9, 0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0xAF, /* 0x00A0 */
    0xB0, 0xB1, 0xB2, 0xB3, 0xB4, 0xB5, 0xB6, 0xB7, /* 0x00B0 */
    0xB8, 0xB9, 0xBA, 0xBB, 0xBC, 0xBD, 0xBE, 0xBF, /* 0x00B0 */
    0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, /* 0x00C0 */
    0xC8, 0xC9, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF, /* 0x00C0 */
       0, 0xD1, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6, 0xD7, /* 0x00D0 */
    0xD8, 0xD9, 0xDA, 0xDB, 0xDC,    0,    0, 0xDF, /* 0x00D0 */
    0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, /* 0x00E0 */
    0xE8, 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF, /* 0x00E0 */
       0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7, /* 0x00F0 */
    0xF8, 0xF9, 0xFA, 0xFB, 0xFC,    0,    0, 0xFF  /* 0x00F0 */
};

/* ----------------------------------------------------------------------- */

#define MS1254TOCHARTABEX_COUNT         31
ImplUniCharTabData const aImplMS1254ToCharTabEx[MS1254TOCHARTABEX_COUNT] =
{
  { 0x011E, 0xD0, 0 },
  { 0x011F, 0xF0, 0 },
  { 0x0130, 0xDD, 0 },
  { 0x0131, 0xFD, 0 },
  { 0x0152, 0x8C, 0 },
  { 0x0153, 0x9C, 0 },
  { 0x015E, 0xDE, 0 },
  { 0x015F, 0xFE, 0 },
  { 0x0160, 0x8A, 0 },
  { 0x0161, 0x9A, 0 },
  { 0x0178, 0x9F, 0 },
  { 0x0192, 0x83, 0 },
  { 0x02C6, 0x88, 0 },
  { 0x02DC, 0x98, 0 },
  { 0x2013, 0x96, 0 },
  { 0x2014, 0x97, 0 },
  { 0x2018, 0x91, 0 },
  { 0x2019, 0x92, 0 },
  { 0x201A, 0x82, 0 },
  { 0x201C, 0x93, 0 },
  { 0x201D, 0x94, 0 },
  { 0x201E, 0x84, 0 },
  { 0x2020, 0x86, 0 },
  { 0x2021, 0x87, 0 },
  { 0x2022, 0x95, 0 },
  { 0x2026, 0x85, 0 },
  { 0x2030, 0x89, 0 },
  { 0x2039, 0x8B, 0 },
  { 0x203A, 0x9B, 0 },
  { 0x20AC, 0x80, 0 },
  { 0x2122, 0x99, 0 }
};

/* ----------------------------------------------------------------------- */

ImplByteConvertData const aImplMS1254ByteCvtData =
{
    aImplMS1254ToUniTab,
    nullptr,
    aImplMS1254ToCharTab,
    nullptr,
    aImplMS1254ToCharTabEx,
    MS1254UNI_START, MS1254UNI_END,
    NOTABUNI_START, NOTABUNI_END,
    MS1254CHAR_START, MS1254CHAR_END,
    NOTABCHAR_START, NOTABCHAR_END,
    MS1254TOCHARTABEX_COUNT,
};

/* ----------------------------------------------------------------------- */

ImplTextEncodingData const aImplMS1254TextEncodingData
    = { { &aImplMS1254ByteCvtData,
          sal::detail::textenc::convertCharToUnicode,
          sal::detail::textenc::convertUnicodeToChar,
          nullptr,
          nullptr,
          nullptr,
          nullptr,
          nullptr,
          nullptr },
        "iso8859-9",
        "windows-1254",
        1,
        1,
        1,
        162,
        RTL_TEXTENCODING_INFO_ASCII | RTL_TEXTENCODING_INFO_MIME };
    /* WIN, SCRIPT_TURKISH, pc code page 857, mac encoding 35 */

/* ======================================================================= */

/* MS-1257 */
/* Windows Standard CharSet for Baltic */
/* 1-byte, 0x00-0x7F ASCII without exception */
/* Convert-Tables: mappings/vendors/micsft/windows/cp1257.txt from 04/15/98 Version 2.01 */
/* Last-Changes from us: */

/* ----------------------------------------------------------------------- */

#define MS1257UNI_START                 0x80
#define MS1257UNI_END                   0xFF
sal_uInt16 const aImplMS1257ToUniTab[MS1257UNI_END - MS1257UNI_START + 1] =
{
/*       0       1       2       3       4       5       6       7 */
/*       8       9       A       B       C       D       E       F */
    0x20AC,      0, 0x201A,      0, 0x201E, 0x2026, 0x2020, 0x2021, /* 0x80 */
         0, 0x2030,      0, 0x2039,      0, 0x00A8, 0x02C7, 0x00B8, /* 0x80 */
         0, 0x2018, 0x2019, 0x201C, 0x201D, 0x2022, 0x2013, 0x2014, /* 0x90 */
         0, 0x2122,      0, 0x203A,      0, 0x00AF, 0x02DB,      0, /* 0x90 */
    0x00A0,      0, 0x00A2, 0x00A3, 0x00A4,      0, 0x00A6, 0x00A7, /* 0xA0 */
    0x00D8, 0x00A9, 0x0156, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x00C6, /* 0xA0 */
    0x00B0, 0x00B1, 0x00B2, 0x00B3, 0x00B4, 0x00B5, 0x00B6, 0x00B7, /* 0xB0 */
    0x00F8, 0x00B9, 0x0157, 0x00BB, 0x00BC, 0x00BD, 0x00BE, 0x00E6, /* 0xB0 */
    0x0104, 0x012E, 0x0100, 0x0106, 0x00C4, 0x00C5, 0x0118, 0x0112, /* 0xC0 */
    0x010C, 0x00C9, 0x0179, 0x0116, 0x0122, 0x0136, 0x012A, 0x013B, /* 0xC0 */
    0x0160, 0x0143, 0x0145, 0x00D3, 0x014C, 0x00D5, 0x00D6, 0x00D7, /* 0xD0 */
    0x0172, 0x0141, 0x015A, 0x016A, 0x00DC, 0x017B, 0x017D, 0x00DF, /* 0xD0 */
    0x0105, 0x012F, 0x0101, 0x0107, 0x00E4, 0x00E5, 0x0119, 0x0113, /* 0xE0 */
    0x010D, 0x00E9, 0x017A, 0x0117, 0x0123, 0x0137, 0x012B, 0x013C, /* 0xE0 */
    0x0161, 0x0144, 0x0146, 0x00F3, 0x014D, 0x00F5, 0x00F6, 0x00F7, /* 0xF0 */
    0x0173, 0x0142, 0x015B, 0x016B, 0x00FC, 0x017C, 0x017E, 0x02D9  /* 0xF0 */
};

/* ----------------------------------------------------------------------- */

#define MS1257CHAR_START                0x00A0
#define MS1257CHAR_END                  0x017E
unsigned char const aImplMS1257ToCharTab[MS1257CHAR_END - MS1257CHAR_START + 1] =
{
/*     0     1     2     3     4     5     6     7 */
/*     8     9     A     B     C     D     E     F */
    0xA0,    0, 0xA2, 0xA3, 0xA4,    0, 0xA6, 0xA7, /* 0x00A0 */
    0x8D, 0xA9,    0, 0xAB, 0xAC, 0xAD, 0xAE, 0x9D, /* 0x00A0 */
    0xB0, 0xB1, 0xB2, 0xB3, 0xB4, 0xB5, 0xB6, 0xB7, /* 0x00B0 */
    0x8F, 0xB9,    0, 0xBB, 0xBC, 0xBD, 0xBE,    0, /* 0x00B0 */
       0,    0,    0,    0, 0xC4, 0xC5, 0xAF,    0, /* 0x00C0 */
       0, 0xC9,    0,    0,    0,    0,    0,    0, /* 0x00C0 */
       0,    0,    0, 0xD3,    0, 0xD5, 0xD6, 0xD7, /* 0x00D0 */
    0xA8,    0,    0,    0, 0xDC,    0,    0, 0xDF, /* 0x00D0 */
       0,    0,    0,    0, 0xE4, 0xE5, 0xBF,    0, /* 0x00E0 */
       0, 0xE9,    0,    0,    0,    0,    0,    0, /* 0x00E0 */
       0,    0,    0, 0xF3,    0, 0xF5, 0xF6, 0xF7, /* 0x00F0 */
    0xB8,    0,    0,    0, 0xFC,    0,    0,    0, /* 0x00F0 */
    0xC2, 0xE2,    0,    0, 0xC0, 0xE0, 0xC3, 0xE3, /* 0x0100 */
       0,    0,    0,    0, 0xC8, 0xE8,    0,    0, /* 0x0100 */
       0,    0, 0xC7, 0xE7,    0,    0, 0xCB, 0xEB, /* 0x0110 */
    0xC6, 0xE6,    0,    0,    0,    0,    0,    0, /* 0x0110 */
       0,    0, 0xCC, 0xEC,    0,    0,    0,    0, /* 0x0120 */
       0,    0, 0xCE, 0xEE,    0,    0, 0xC1, 0xE1, /* 0x0120 */
       0,    0,    0,    0,    0,    0, 0xCD, 0xED, /* 0x0130 */
       0,    0,    0, 0xCF, 0xEF,    0,    0,    0, /* 0x0130 */
       0, 0xD9, 0xF9, 0xD1, 0xF1, 0xD2, 0xF2,    0, /* 0x0140 */
       0,    0,    0,    0, 0xD4, 0xF4,    0,    0, /* 0x0140 */
       0,    0,    0,    0,    0,    0, 0xAA, 0xBA, /* 0x0150 */
       0,    0, 0xDA, 0xFA,    0,    0,    0,    0, /* 0x0150 */
    0xD0, 0xF0,    0,    0,    0,    0,    0,    0, /* 0x0160 */
       0,    0, 0xDB, 0xFB,    0,    0,    0,    0, /* 0x0160 */
       0,    0, 0xD8, 0xF8,    0,    0,    0,    0, /* 0x0170 */
--> --------------------

--> maximum size reached

--> --------------------

[ Dauer der Verarbeitung: 0.23 Sekunden  (vorverarbeitet)  ]