363 lines
13 KiB
SQL
363 lines
13 KiB
SQL
/*************************************************************************
|
|
*
|
|
* $RCSfile: tcvteas1.tab,v $
|
|
*
|
|
* $Revision: 1.6 $
|
|
*
|
|
* last change: $Author: sb $ $Date: 2002-12-12 12:29:14 $
|
|
*
|
|
* The Contents of this file are made available subject to the terms of
|
|
* either of the following licenses
|
|
*
|
|
* - GNU Lesser General Public License Version 2.1
|
|
* - Sun Industry Standards Source License Version 1.1
|
|
*
|
|
* Sun Microsystems Inc., October, 2000
|
|
*
|
|
* GNU Lesser General Public License Version 2.1
|
|
* =============================================
|
|
* Copyright 2000 by Sun Microsystems, Inc.
|
|
* 901 San Antonio Road, Palo Alto, CA 94303, USA
|
|
*
|
|
* This library is free software; you can redistribute it and/or
|
|
* modify it under the terms of the GNU Lesser General Public
|
|
* License version 2.1, as published by the Free Software Foundation.
|
|
*
|
|
* This library is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
* Lesser General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU Lesser General Public
|
|
* License along with this library; if not, write to the Free Software
|
|
* Foundation, Inc., 59 Temple Place, Suite 330, Boston,
|
|
* MA 02111-1307 USA
|
|
*
|
|
*
|
|
* Sun Industry Standards Source License Version 1.1
|
|
* =================================================
|
|
* The contents of this file are subject to the Sun Industry Standards
|
|
* Source License Version 1.1 (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.openoffice.org/license.html.
|
|
*
|
|
* Software provided under this License is provided on an "AS IS" basis,
|
|
* WITHOUT WARRUNTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING,
|
|
* WITHOUT LIMITATION, WARRUNTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
|
|
* MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
|
|
* See the License for the specific provisions governing your rights and
|
|
* obligations concerning the Software.
|
|
*
|
|
* The Initial Developer of the Original Code is: Sun Microsystems, Inc..
|
|
*
|
|
* Copyright: 2000 by Sun Microsystems, Inc.
|
|
*
|
|
* All Rights Reserved.
|
|
*
|
|
* Contributor(s): _______________________________________
|
|
*
|
|
*
|
|
************************************************************************/
|
|
|
|
/* ======================================================================= */
|
|
|
|
/* This file contain the tables for all 1 byte charsets, for the */
|
|
/* following scripts: asia (Thai, Vietnamese) and other exotic scripts */
|
|
|
|
/* ======================================================================= */
|
|
|
|
/* MS-874 */
|
|
/* Windows/Dos Standard CharSet for Thai */
|
|
/* 1-Byte, 0x00-0x7F ASCII ohne Ausnahme */
|
|
/* Convert-Tables: mappings/vendors/micsft/pc/cp874.txt from 04/15/98 Version 2.00 */
|
|
/* Last-Changes from us: */
|
|
|
|
/* ----------------------------------------------------------------------- */
|
|
|
|
#define MS874UNI_START 0x80
|
|
#define MS874UNI_END 0xFB
|
|
static sal_uInt16 const aImplMS874ToUniTab[MS874UNI_END - MS874UNI_START + 1] =
|
|
{
|
|
/* 0 1 2 3 4 5 6 7 */
|
|
/* 8 9 A B C D E F */
|
|
0x20AC, 0, 0, 0, 0, 0x2026, 0, 0, /* 0x80 */
|
|
0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */
|
|
0, 0x2018, 0x2019, 0x201C, 0x201D, 0x2022, 0x2013, 0x2014, /* 0x90 */
|
|
0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */
|
|
0x00A0, 0x0E01, 0x0E02, 0x0E03, 0x0E04, 0x0E05, 0x0E06, 0x0E07, /* 0xA0 */
|
|
0x0E08, 0x0E09, 0x0E0A, 0x0E0B, 0x0E0C, 0x0E0D, 0x0E0E, 0x0E0F, /* 0xA0 */
|
|
0x0E10, 0x0E11, 0x0E12, 0x0E13, 0x0E14, 0x0E15, 0x0E16, 0x0E17, /* 0xB0 */
|
|
0x0E18, 0x0E19, 0x0E1A, 0x0E1B, 0x0E1C, 0x0E1D, 0x0E1E, 0x0E1F, /* 0xB0 */
|
|
0x0E20, 0x0E21, 0x0E22, 0x0E23, 0x0E24, 0x0E25, 0x0E26, 0x0E27, /* 0xC0 */
|
|
0x0E28, 0x0E29, 0x0E2A, 0x0E2B, 0x0E2C, 0x0E2D, 0x0E2E, 0x0E2F, /* 0xC0 */
|
|
0x0E30, 0x0E31, 0x0E32, 0x0E33, 0x0E34, 0x0E35, 0x0E36, 0x0E37, /* 0xD0 */
|
|
0x0E38, 0x0E39, 0x0E3A, 0, 0, 0, 0, 0x0E3F, /* 0xD0 */
|
|
0x0E40, 0x0E41, 0x0E42, 0x0E43, 0x0E44, 0x0E45, 0x0E46, 0x0E47, /* 0xE0 */
|
|
0x0E48, 0x0E49, 0x0E4A, 0x0E4B, 0x0E4C, 0x0E4D, 0x0E4E, 0x0E4F, /* 0xE0 */
|
|
0x0E50, 0x0E51, 0x0E52, 0x0E53, 0x0E54, 0x0E55, 0x0E56, 0x0E57, /* 0xF0 */
|
|
0x0E58, 0x0E59, 0x0E5A, 0x0E5B /* 0xF0 */
|
|
};
|
|
|
|
/* ----------------------------------------------------------------------- */
|
|
|
|
#define MS874CHAR_START 0x0E01
|
|
#define MS874CHAR_END 0x0E5B
|
|
static sal_uChar const aImplMS874ToCharTab[MS874CHAR_END - MS874CHAR_START + 1] =
|
|
{
|
|
/* 0 1 2 3 4 5 6 7 */
|
|
/* 8 9 A B C D E F */
|
|
0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, /* 0x0E00 */
|
|
0xA8, 0xA9, 0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0xAF, /* 0x0E00 */
|
|
0xB0, 0xB1, 0xB2, 0xB3, 0xB4, 0xB5, 0xB6, 0xB7, /* 0x0E10 */
|
|
0xB8, 0xB9, 0xBA, 0xBB, 0xBC, 0xBD, 0xBE, 0xBF, /* 0x0E10 */
|
|
0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, /* 0x0E20 */
|
|
0xC8, 0xC9, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF, /* 0x0E20 */
|
|
0xD0, 0xD1, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6, 0xD7, /* 0x0E30 */
|
|
0xD8, 0xD9, 0xDA, 0, 0, 0, 0, 0xDF, /* 0x0E30 */
|
|
0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, /* 0x0E40 */
|
|
0xE8, 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF, /* 0x0E40 */
|
|
0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7, /* 0x0E50 */
|
|
0xF8, 0xF9, 0xFA, 0xFB /* 0x0E50 */
|
|
};
|
|
|
|
/* ----------------------------------------------------------------------- */
|
|
|
|
#define MS874TOCHARTABEX_COUNT 10
|
|
static ImplUniCharTabData const aImplMS874ToCharTabEx[MS874TOCHARTABEX_COUNT] =
|
|
{
|
|
{ 0x00A0, 0xA0 },
|
|
{ 0x2013, 0x96 },
|
|
{ 0x2014, 0x97 },
|
|
{ 0x2018, 0x91 },
|
|
{ 0x2019, 0x92 },
|
|
{ 0x201C, 0x93 },
|
|
{ 0x201D, 0x94 },
|
|
{ 0x2022, 0x95 },
|
|
{ 0x2026, 0x85 },
|
|
{ 0x20AC, 0x80 }
|
|
};
|
|
|
|
/* ----------------------------------------------------------------------- */
|
|
|
|
static ImplByteConvertData const aImplMS874ByteCvtData =
|
|
{
|
|
aImplMS874ToUniTab,
|
|
NULL,
|
|
MS874UNI_START, MS874UNI_END,
|
|
NOTABUNI_START, NOTABUNI_END,
|
|
aImplMS874ToCharTab,
|
|
NULL,
|
|
aImplMS874ToCharTabEx,
|
|
MS874CHAR_START, MS874CHAR_END,
|
|
NOTABCHAR_START, NOTABCHAR_END,
|
|
MS874TOCHARTABEX_COUNT
|
|
};
|
|
|
|
/* ----------------------------------------------------------------------- */
|
|
|
|
static ImplTextEncodingData const aImplMS874TextEncodingData
|
|
= { { &aImplMS874ByteCvtData,
|
|
ImplCharToUnicode,
|
|
ImplUnicodeToChar,
|
|
NULL,
|
|
NULL,
|
|
NULL,
|
|
NULL,
|
|
NULL,
|
|
NULL },
|
|
1,
|
|
1,
|
|
1,
|
|
222,
|
|
"iso8859-1", /* TODO! correct? */
|
|
"windows-874",
|
|
RTL_TEXTENCODING_INFO_ASCII | RTL_TEXTENCODING_INFO_MIME };
|
|
/* WIN/DOS/OS2, SCRIPT_THAI, pc code page 874, mac encoding 21 */
|
|
|
|
/* ======================================================================= */
|
|
|
|
/* TIS 620-2533
|
|
*
|
|
* A good source of information is <http://www.inet.co.th/cyberclub/trin/
|
|
* thairef/index.html> as of 18 Mar 2002.
|
|
*
|
|
* Single byte encoding, from which MS874 is derived (although it is the other
|
|
* way around in this implementation):
|
|
*
|
|
* 0x00--9F map to U+0000--009F
|
|
* 0xA0 is questionable (unassigned or U+00A0 NO BREAK SPACE), to ease
|
|
* implementation, it maps to U+00A0
|
|
* 0xA1--DA map to U+0E01--0E3A (TIS 620, same for MS874)
|
|
* 0xDB--DE are unassigned (TIS 620, same for MS874)
|
|
* 0xDF--FB map to U+0E3F--0E5B (TIS 620, same for MS874)
|
|
* 0xFC--FF are unassigned (TIS 620, same for MS874)
|
|
*/
|
|
|
|
static ImplByteConvertData const aImplTis620ByteCvtData =
|
|
{
|
|
aImplMS874ToUniTab + (0xA0 - MS874UNI_START),
|
|
aImpl8090SameToUniTab,
|
|
0xA0, MS874UNI_END,
|
|
SAME8090UNI_START, SAME8090UNI_END,
|
|
aImplMS874ToCharTab,
|
|
aImpl8090SameToCharTab,
|
|
aImplMS874ToCharTabEx,
|
|
MS874CHAR_START, MS874CHAR_END,
|
|
SAME8090CHAR_START, SAME8090CHAR_END,
|
|
1
|
|
};
|
|
|
|
static ImplTextEncodingData const aImplTis620TextEncodingData
|
|
= { { &aImplTis620ByteCvtData,
|
|
ImplCharToUnicode,
|
|
ImplUnicodeToChar,
|
|
NULL,
|
|
NULL,
|
|
NULL,
|
|
NULL,
|
|
NULL,
|
|
NULL },
|
|
1,
|
|
1,
|
|
1,
|
|
222,
|
|
"iso8859-1", /* TODO! correct? */
|
|
"TIS-620",
|
|
RTL_TEXTENCODING_INFO_ASCII | RTL_TEXTENCODING_INFO_MIME };
|
|
|
|
/* ======================================================================= */
|
|
|
|
/* MS-1258 */
|
|
/* Windows Standard CharSet for Vietnamease */
|
|
/* 1-Byte, 0x00-0x7F ASCII ohne Ausnahme */
|
|
/* Convert-Tables: mappings/vendors/micsft/windows/cp1258.txt from 04/15/98 Version 2.01 */
|
|
/* Last-Changes from us: */
|
|
|
|
/* ----------------------------------------------------------------------- */
|
|
|
|
#define MS1258UNI_START 0x80
|
|
#define MS1258UNI_END 0xFF
|
|
static sal_uInt16 const aImplMS1258ToUniTab[MS1258UNI_END - MS1258UNI_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, 0, 0x2039, 0x0152, 0, 0, 0, /* 0x80 */
|
|
0, 0x2018, 0x2019, 0x201C, 0x201D, 0x2022, 0x2013, 0x2014, /* 0x90 */
|
|
0x02DC, 0x2122, 0, 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, 0x0102, 0x00C4, 0x00C5, 0x00C6, 0x00C7, /* 0xC0 */
|
|
0x00C8, 0x00C9, 0x00CA, 0x00CB, 0x0300, 0x00CD, 0x00CE, 0x00CF, /* 0xC0 */
|
|
0x0110, 0x00D1, 0x0309, 0x00D3, 0x00D4, 0x01A0, 0x00D6, 0x00D7, /* 0xD0 */
|
|
0x00D8, 0x00D9, 0x00DA, 0x00DB, 0x00DC, 0x01AF, 0x0303, 0x00DF, /* 0xD0 */
|
|
0x00E0, 0x00E1, 0x00E2, 0x0103, 0x00E4, 0x00E5, 0x00E6, 0x00E7, /* 0xE0 */
|
|
0x00E8, 0x00E9, 0x00EA, 0x00EB, 0x0301, 0x00ED, 0x00EE, 0x00EF, /* 0xE0 */
|
|
0x0111, 0x00F1, 0x0323, 0x00F3, 0x00F4, 0x01A1, 0x00F6, 0x00F7, /* 0xF0 */
|
|
0x00F8, 0x00F9, 0x00FA, 0x00FB, 0x00FC, 0x01B0, 0x20AB, 0x00FF /* 0xF0 */
|
|
};
|
|
|
|
/* ----------------------------------------------------------------------- */
|
|
|
|
#define MS1258CHAR_START 0x00A0
|
|
#define MS1258CHAR_END 0x00FF
|
|
static sal_uChar const aImplMS1258ToCharTab[MS1258CHAR_END - MS1258CHAR_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, 0, 0xC4, 0xC5, 0xC6, 0xC7, /* 0x00C0 */
|
|
0xC8, 0xC9, 0xCA, 0xCB, 0, 0xCD, 0xCE, 0xCF, /* 0x00C0 */
|
|
0, 0xD1, 0, 0xD3, 0xD4, 0, 0xD6, 0xD7, /* 0x00D0 */
|
|
0xD8, 0xD9, 0xDA, 0xDB, 0xDC, 0, 0, 0xDF, /* 0x00D0 */
|
|
0xE0, 0xE1, 0xE2, 0, 0xE4, 0xE5, 0xE6, 0xE7, /* 0x00E0 */
|
|
0xE8, 0xE9, 0xEA, 0xEB, 0, 0xED, 0xEE, 0xEF, /* 0x00E0 */
|
|
0, 0xF1, 0, 0xF3, 0xF4, 0, 0xF6, 0xF7, /* 0x00F0 */
|
|
0xF8, 0xF9, 0xFA, 0xFB, 0xFC, 0, 0, 0xFF /* 0x00F0 */
|
|
};
|
|
|
|
/* ----------------------------------------------------------------------- */
|
|
|
|
#define MS1258TOCHARTABEX_COUNT 37
|
|
static ImplUniCharTabData const aImplMS1258ToCharTabEx[MS1258TOCHARTABEX_COUNT] =
|
|
{
|
|
{ 0x0102, 0xC3 },
|
|
{ 0x0103, 0xE3 },
|
|
{ 0x0110, 0xD0 },
|
|
{ 0x0111, 0xF0 },
|
|
{ 0x0152, 0x8C },
|
|
{ 0x0153, 0x9C },
|
|
{ 0x0178, 0x9F },
|
|
{ 0x0192, 0x83 },
|
|
{ 0x01A0, 0xD5 },
|
|
{ 0x01A1, 0xF5 },
|
|
{ 0x01AF, 0xDD },
|
|
{ 0x01B0, 0xFD },
|
|
{ 0x02C6, 0x88 },
|
|
{ 0x02DC, 0x98 },
|
|
{ 0x0300, 0xCC },
|
|
{ 0x0301, 0xEC },
|
|
{ 0x0303, 0xDE },
|
|
{ 0x0309, 0xD2 },
|
|
{ 0x0323, 0xF2 },
|
|
{ 0x2013, 0x96 },
|
|
{ 0x2014, 0x97 },
|
|
{ 0x2018, 0x91 },
|
|
{ 0x2019, 0x92 },
|
|
{ 0x201A, 0x82 },
|
|
{ 0x201C, 0x93 },
|
|
{ 0x201D, 0x94 },
|
|
{ 0x201E, 0x84 },
|
|
{ 0x2020, 0x86 },
|
|
{ 0x2021, 0x87 },
|
|
{ 0x2022, 0x95 },
|
|
{ 0x2026, 0x85 },
|
|
{ 0x2030, 0x89 },
|
|
{ 0x2039, 0x8B },
|
|
{ 0x203A, 0x9B },
|
|
{ 0x20AB, 0xFE },
|
|
{ 0x20AC, 0x80 },
|
|
{ 0x2122, 0x99 },
|
|
};
|
|
|
|
/* ----------------------------------------------------------------------- */
|
|
|
|
static ImplByteConvertData const aImplMS1258ByteCvtData =
|
|
{
|
|
aImplMS1258ToUniTab,
|
|
NULL,
|
|
MS1258UNI_START, MS1258UNI_END,
|
|
NOTABUNI_START, NOTABUNI_END,
|
|
aImplMS1258ToCharTab,
|
|
NULL,
|
|
aImplMS1258ToCharTabEx,
|
|
MS1258CHAR_START, MS1258CHAR_END,
|
|
NOTABCHAR_START, NOTABCHAR_END,
|
|
MS1258TOCHARTABEX_COUNT
|
|
};
|
|
|
|
/* ----------------------------------------------------------------------- */
|
|
|
|
static ImplTextEncodingData const aImplMS1258TextEncodingData
|
|
= { { &aImplMS1258ByteCvtData,
|
|
ImplCharToUnicode,
|
|
ImplUnicodeToChar,
|
|
NULL,
|
|
NULL,
|
|
NULL,
|
|
NULL,
|
|
NULL,
|
|
NULL },
|
|
1,
|
|
1,
|
|
1,
|
|
163,
|
|
"iso8859-1", /* TODO! correct? */
|
|
"windows-1258",
|
|
RTL_TEXTENCODING_INFO_ASCII | RTL_TEXTENCODING_INFO_MIME };
|
|
/* WIN, SCRIPT_VIETNAMESE, mac encoding 30 */
|