[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Dotgnu-pnet-commits] CVS: pnetlib/I18N/Other CP10007.cs, NONE, 1.1 CP10
From: |
Rhys Weatherley <address@hidden> |
Subject: |
[Dotgnu-pnet-commits] CVS: pnetlib/I18N/Other CP10007.cs, NONE, 1.1 CP10017.cs, NONE, 1.1 CP10021.cs, NONE, 1.1 mac-10007.ucm, NONE, 1.1 mac-10021.ucm, NONE, 1.1 |
Date: |
Fri, 15 Aug 2003 00:38:48 -0400 |
Update of /cvsroot/dotgnu-pnet/pnetlib/I18N/Other
In directory subversions:/tmp/cvs-serv31592/I18N/Other
Added Files:
CP10007.cs CP10017.cs CP10021.cs mac-10007.ucm mac-10021.ucm
Log Message:
Add some Mac-related code pages to I18N.
--- NEW FILE ---
/*
* CP10007.cs - MAC - Cyrillic code page.
*
* Copyright (c) 2002 Southern Storm Software, Pty Ltd
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program 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 General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
// Generated from "mac-10007.ucm".
namespace I18N.Other
{
using System;
using I18N.Common;
public class CP10007 : ByteEncoding
{
public CP10007()
: base(10007, ToChars, "MAC - Cyrillic",
"windows-10007", "windows-10007", "windows-10007",
false, false, false, false, 1251)
{}
private static readonly char[] ToChars = {
'\u0000', '\u0001', '\u0002', '\u0003', '\u0004', '\u0005',
'\u0006', '\u0007', '\u0008', '\u0009', '\u000A', '\u000B',
'\u000C', '\u000D', '\u000E', '\u000F', '\u0010', '\u0011',
'\u0012', '\u0013', '\u0014', '\u0015', '\u0016', '\u0017',
'\u0018', '\u0019', '\u001A', '\u001B', '\u001C', '\u001D',
'\u001E', '\u001F', '\u0020', '\u0021', '\u0022', '\u0023',
'\u0024', '\u0025', '\u0026', '\u0027', '\u0028', '\u0029',
'\u002A', '\u002B', '\u002C', '\u002D', '\u002E', '\u002F',
'\u0030', '\u0031', '\u0032', '\u0033', '\u0034', '\u0035',
'\u0036', '\u0037', '\u0038', '\u0039', '\u003A', '\u003B',
'\u003C', '\u003D', '\u003E', '\u003F', '\u0040', '\u0041',
'\u0042', '\u0043', '\u0044', '\u0045', '\u0046', '\u0047',
'\u0048', '\u0049', '\u004A', '\u004B', '\u004C', '\u004D',
'\u004E', '\u004F', '\u0050', '\u0051', '\u0052', '\u0053',
'\u0054', '\u0055', '\u0056', '\u0057', '\u0058', '\u0059',
'\u005A', '\u005B', '\u005C', '\u005D', '\u005E', '\u005F',
'\u0060', '\u0061', '\u0062', '\u0063', '\u0064', '\u0065',
'\u0066', '\u0067', '\u0068', '\u0069', '\u006A', '\u006B',
'\u006C', '\u006D', '\u006E', '\u006F', '\u0070', '\u0071',
'\u0072', '\u0073', '\u0074', '\u0075', '\u0076', '\u0077',
'\u0078', '\u0079', '\u007A', '\u007B', '\u007C', '\u007D',
'\u007E', '\u007F', '\u0410', '\u0411', '\u0412', '\u0413',
'\u0414', '\u0415', '\u0416', '\u0417', '\u0418', '\u0419',
'\u041A', '\u041B', '\u041C', '\u041D', '\u041E', '\u041F',
'\u0420', '\u0421', '\u0422', '\u0423', '\u0424', '\u0425',
'\u0426', '\u0427', '\u0428', '\u0429', '\u042A', '\u042B',
'\u042C', '\u042D', '\u042E', '\u042F', '\u2020', '\u00B0',
'\u0490', '\u00A3', '\u00A7', '\u2022', '\u00B6', '\u0406',
'\u00AE', '\u00A9', '\u2122', '\u0402', '\u0452', '\u2260',
'\u0403', '\u0453', '\u221E', '\u00B1', '\u2264', '\u2265',
'\u0456', '\u00B5', '\u0491', '\u0408', '\u0404', '\u0454',
'\u0407', '\u0457', '\u0409', '\u0459', '\u040A', '\u045A',
'\u0458', '\u0405', '\u00AC', '\u221A', '\u0192', '\u2248',
'\u2206', '\u00AB', '\u00BB', '\u2026', '\u00A0', '\u040B',
'\u045B', '\u040C', '\u045C', '\u0455', '\u2013', '\u2014',
'\u201C', '\u201D', '\u2018', '\u2019', '\u00F7', '\u201E',
'\u040E', '\u045E', '\u040F', '\u045F', '\u2116', '\u0401',
'\u0451', '\u044F', '\u0430', '\u0431', '\u0432', '\u0433',
'\u0434', '\u0435', '\u0436', '\u0437', '\u0438', '\u0439',
'\u043A', '\u043B', '\u043C', '\u043D', '\u043E', '\u043F',
'\u0440', '\u0441', '\u0442', '\u0443', '\u0444', '\u0445',
'\u0446', '\u0447', '\u0448', '\u0449', '\u044A', '\u044B',
'\u044C', '\u044D', '\u044E', '\u20AC',
};
protected override void ToBytes(char[] chars, int charIndex, int
charCount,
byte[] bytes, int byteIndex)
{
int ch;
while(charCount > 0)
{
ch = (int)(chars[charIndex++]);
if(ch >= 0) switch(ch)
{
case 0x0020:
case 0x0021:
case 0x0022:
case 0x0023:
case 0x0024:
case 0x0025:
case 0x0026:
case 0x0027:
case 0x0028:
case 0x0029:
case 0x002A:
case 0x002B:
case 0x002C:
case 0x002D:
case 0x002E:
case 0x002F:
case 0x0030:
case 0x0031:
case 0x0032:
case 0x0033:
case 0x0034:
case 0x0035:
case 0x0036:
case 0x0037:
case 0x0038:
case 0x0039:
case 0x003A:
case 0x003B:
case 0x003C:
case 0x003D:
case 0x003E:
case 0x003F:
case 0x0040:
case 0x0041:
case 0x0042:
case 0x0043:
case 0x0044:
case 0x0045:
case 0x0046:
case 0x0047:
case 0x0048:
case 0x0049:
case 0x004A:
case 0x004B:
case 0x004C:
case 0x004D:
case 0x004E:
case 0x004F:
case 0x0050:
case 0x0051:
case 0x0052:
case 0x0053:
case 0x0054:
case 0x0055:
case 0x0056:
case 0x0057:
case 0x0058:
case 0x0059:
case 0x005A:
case 0x005B:
case 0x005C:
case 0x005D:
case 0x005E:
case 0x005F:
case 0x0060:
case 0x0061:
case 0x0062:
case 0x0063:
case 0x0064:
case 0x0065:
case 0x0066:
case 0x0067:
case 0x0068:
case 0x0069:
case 0x006A:
case 0x006B:
case 0x006C:
case 0x006D:
case 0x006E:
case 0x006F:
case 0x0070:
case 0x0071:
case 0x0072:
case 0x0073:
case 0x0074:
case 0x0075:
case 0x0076:
case 0x0077:
case 0x0078:
case 0x0079:
case 0x007A:
case 0x007B:
case 0x007C:
case 0x007D:
case 0x007E:
case 0x00A3:
case 0x00A9:
case 0x00B1:
case 0x00B5:
break;
case 0x00A0: ch = 0xCA; break;
case 0x00A7: ch = 0xA4; break;
case 0x00AB: ch = 0xC7; break;
case 0x00AC: ch = 0xC2; break;
case 0x00AE: ch = 0xA8; break;
case 0x00B0: ch = 0xA1; break;
case 0x00B6: ch = 0xA6; break;
case 0x00BB: ch = 0xC8; break;
case 0x00F7: ch = 0xD6; break;
case 0x0192: ch = 0xC4; break;
case 0x0401: ch = 0xDD; break;
case 0x0402: ch = 0xAB; break;
case 0x0403: ch = 0xAE; break;
case 0x0404: ch = 0xB8; break;
case 0x0405: ch = 0xC1; break;
case 0x0406: ch = 0xA7; break;
case 0x0407: ch = 0xBA; break;
case 0x0408: ch = 0xB7; break;
case 0x0409: ch = 0xBC; break;
case 0x040A: ch = 0xBE; break;
case 0x040B: ch = 0xCB; break;
case 0x040C: ch = 0xCD; break;
case 0x040E: ch = 0xD8; break;
case 0x040F: ch = 0xDA; break;
case 0x0410:
case 0x0411:
case 0x0412:
case 0x0413:
case 0x0414:
case 0x0415:
case 0x0416:
case 0x0417:
case 0x0418:
case 0x0419:
case 0x041A:
case 0x041B:
case 0x041C:
case 0x041D:
case 0x041E:
case 0x041F:
case 0x0420:
case 0x0421:
case 0x0422:
case 0x0423:
case 0x0424:
case 0x0425:
case 0x0426:
case 0x0427:
case 0x0428:
case 0x0429:
case 0x042A:
case 0x042B:
case 0x042C:
case 0x042D:
case 0x042E:
case 0x042F:
ch -= 0x0390;
break;
case 0x0430:
case 0x0431:
case 0x0432:
case 0x0433:
case 0x0434:
case 0x0435:
case 0x0436:
case 0x0437:
case 0x0438:
case 0x0439:
case 0x043A:
case 0x043B:
case 0x043C:
case 0x043D:
case 0x043E:
case 0x043F:
case 0x0440:
case 0x0441:
case 0x0442:
case 0x0443:
case 0x0444:
case 0x0445:
case 0x0446:
case 0x0447:
case 0x0448:
case 0x0449:
case 0x044A:
case 0x044B:
case 0x044C:
case 0x044D:
case 0x044E:
ch -= 0x0350;
break;
case 0x044F: ch = 0xDF; break;
case 0x0451: ch = 0xDE; break;
case 0x0452: ch = 0xAC; break;
case 0x0453: ch = 0xAF; break;
case 0x0454: ch = 0xB9; break;
case 0x0455: ch = 0xCF; break;
case 0x0456: ch = 0xB4; break;
case 0x0457: ch = 0xBB; break;
case 0x0458: ch = 0xC0; break;
case 0x0459: ch = 0xBD; break;
case 0x045A: ch = 0xBF; break;
case 0x045B: ch = 0xCC; break;
case 0x045C: ch = 0xCE; break;
case 0x045E: ch = 0xD9; break;
case 0x045F: ch = 0xDB; break;
case 0x0490: ch = 0xA2; break;
case 0x0491: ch = 0xB6; break;
case 0x2013: ch = 0xD0; break;
case 0x2014: ch = 0xD1; break;
case 0x2018: ch = 0xD4; break;
case 0x2019: ch = 0xD5; break;
case 0x201C: ch = 0xD2; break;
case 0x201D: ch = 0xD3; break;
case 0x201E: ch = 0xD7; break;
case 0x2020: ch = 0xA0; break;
case 0x2022: ch = 0xA5; break;
case 0x2026: ch = 0xC9; break;
case 0x20AC: ch = 0xFF; break;
case 0x2116: ch = 0xDC; break;
case 0x2122: ch = 0xAA; break;
case 0x2206: ch = 0xC6; break;
case 0x221A: ch = 0xC3; break;
case 0x221E: ch = 0xB0; break;
case 0x2248: ch = 0xC5; break;
case 0x2260: ch = 0xAD; break;
case 0x2264: ch = 0xB2; break;
case 0x2265: ch = 0xB3; break;
default: ch = 0x3F; break;
}
bytes[byteIndex++] = (byte)ch;
--charCount;
}
}
protected override void ToBytes(String s, int charIndex, int charCount,
byte[] bytes, int byteIndex)
{
int ch;
while(charCount > 0)
{
ch = (int)(s[charIndex++]);
if(ch >= 0) switch(ch)
{
case 0x0020:
case 0x0021:
case 0x0022:
case 0x0023:
case 0x0024:
case 0x0025:
case 0x0026:
case 0x0027:
case 0x0028:
case 0x0029:
case 0x002A:
case 0x002B:
case 0x002C:
case 0x002D:
case 0x002E:
case 0x002F:
case 0x0030:
case 0x0031:
case 0x0032:
case 0x0033:
case 0x0034:
case 0x0035:
case 0x0036:
case 0x0037:
case 0x0038:
case 0x0039:
case 0x003A:
case 0x003B:
case 0x003C:
case 0x003D:
case 0x003E:
case 0x003F:
case 0x0040:
case 0x0041:
case 0x0042:
case 0x0043:
case 0x0044:
case 0x0045:
case 0x0046:
case 0x0047:
case 0x0048:
case 0x0049:
case 0x004A:
case 0x004B:
case 0x004C:
case 0x004D:
case 0x004E:
case 0x004F:
case 0x0050:
case 0x0051:
case 0x0052:
case 0x0053:
case 0x0054:
case 0x0055:
case 0x0056:
case 0x0057:
case 0x0058:
case 0x0059:
case 0x005A:
case 0x005B:
case 0x005C:
case 0x005D:
case 0x005E:
case 0x005F:
case 0x0060:
case 0x0061:
case 0x0062:
case 0x0063:
case 0x0064:
case 0x0065:
case 0x0066:
case 0x0067:
case 0x0068:
case 0x0069:
case 0x006A:
case 0x006B:
case 0x006C:
case 0x006D:
case 0x006E:
case 0x006F:
case 0x0070:
case 0x0071:
case 0x0072:
case 0x0073:
case 0x0074:
case 0x0075:
case 0x0076:
case 0x0077:
case 0x0078:
case 0x0079:
case 0x007A:
case 0x007B:
case 0x007C:
case 0x007D:
case 0x007E:
case 0x00A3:
case 0x00A9:
case 0x00B1:
case 0x00B5:
break;
case 0x00A0: ch = 0xCA; break;
case 0x00A7: ch = 0xA4; break;
case 0x00AB: ch = 0xC7; break;
case 0x00AC: ch = 0xC2; break;
case 0x00AE: ch = 0xA8; break;
case 0x00B0: ch = 0xA1; break;
case 0x00B6: ch = 0xA6; break;
case 0x00BB: ch = 0xC8; break;
case 0x00F7: ch = 0xD6; break;
case 0x0192: ch = 0xC4; break;
case 0x0401: ch = 0xDD; break;
case 0x0402: ch = 0xAB; break;
case 0x0403: ch = 0xAE; break;
case 0x0404: ch = 0xB8; break;
case 0x0405: ch = 0xC1; break;
case 0x0406: ch = 0xA7; break;
case 0x0407: ch = 0xBA; break;
case 0x0408: ch = 0xB7; break;
case 0x0409: ch = 0xBC; break;
case 0x040A: ch = 0xBE; break;
case 0x040B: ch = 0xCB; break;
case 0x040C: ch = 0xCD; break;
case 0x040E: ch = 0xD8; break;
case 0x040F: ch = 0xDA; break;
case 0x0410:
case 0x0411:
case 0x0412:
case 0x0413:
case 0x0414:
case 0x0415:
case 0x0416:
case 0x0417:
case 0x0418:
case 0x0419:
case 0x041A:
case 0x041B:
case 0x041C:
case 0x041D:
case 0x041E:
case 0x041F:
case 0x0420:
case 0x0421:
case 0x0422:
case 0x0423:
case 0x0424:
case 0x0425:
case 0x0426:
case 0x0427:
case 0x0428:
case 0x0429:
case 0x042A:
case 0x042B:
case 0x042C:
case 0x042D:
case 0x042E:
case 0x042F:
ch -= 0x0390;
break;
case 0x0430:
case 0x0431:
case 0x0432:
case 0x0433:
case 0x0434:
case 0x0435:
case 0x0436:
case 0x0437:
case 0x0438:
case 0x0439:
case 0x043A:
case 0x043B:
case 0x043C:
case 0x043D:
case 0x043E:
case 0x043F:
case 0x0440:
case 0x0441:
case 0x0442:
case 0x0443:
case 0x0444:
case 0x0445:
case 0x0446:
case 0x0447:
case 0x0448:
case 0x0449:
case 0x044A:
case 0x044B:
case 0x044C:
case 0x044D:
case 0x044E:
ch -= 0x0350;
break;
case 0x044F: ch = 0xDF; break;
case 0x0451: ch = 0xDE; break;
case 0x0452: ch = 0xAC; break;
case 0x0453: ch = 0xAF; break;
case 0x0454: ch = 0xB9; break;
case 0x0455: ch = 0xCF; break;
case 0x0456: ch = 0xB4; break;
case 0x0457: ch = 0xBB; break;
case 0x0458: ch = 0xC0; break;
case 0x0459: ch = 0xBD; break;
case 0x045A: ch = 0xBF; break;
case 0x045B: ch = 0xCC; break;
case 0x045C: ch = 0xCE; break;
case 0x045E: ch = 0xD9; break;
case 0x045F: ch = 0xDB; break;
case 0x0490: ch = 0xA2; break;
case 0x0491: ch = 0xB6; break;
case 0x2013: ch = 0xD0; break;
case 0x2014: ch = 0xD1; break;
case 0x2018: ch = 0xD4; break;
case 0x2019: ch = 0xD5; break;
case 0x201C: ch = 0xD2; break;
case 0x201D: ch = 0xD3; break;
case 0x201E: ch = 0xD7; break;
case 0x2020: ch = 0xA0; break;
case 0x2022: ch = 0xA5; break;
case 0x2026: ch = 0xC9; break;
case 0x20AC: ch = 0xFF; break;
case 0x2116: ch = 0xDC; break;
case 0x2122: ch = 0xAA; break;
case 0x2206: ch = 0xC6; break;
case 0x221A: ch = 0xC3; break;
case 0x221E: ch = 0xB0; break;
case 0x2248: ch = 0xC5; break;
case 0x2260: ch = 0xAD; break;
case 0x2264: ch = 0xB2; break;
case 0x2265: ch = 0xB3; break;
default: ch = 0x3F; break;
}
bytes[byteIndex++] = (byte)ch;
--charCount;
}
}
}; // class CP10007
public class ENCwindows_10007 : CP10007
{
public ENCwindows_10007() : base() {}
}; // class ENCwindows_10007
}; // namespace I18N.Other
--- NEW FILE ---
/*
* CP10017.cs - MAC - Ukraine code page.
*
* Copyright (c) 2002 Southern Storm Software, Pty Ltd
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program 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 General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
// Generated from "mac-10007.ucm".
namespace I18N.Other
{
using System;
using I18N.Common;
public class CP10017 : ByteEncoding
{
public CP10017()
: base(10017, ToChars, "MAC - Ukraine",
"windows-10017", "windows-10017", "windows-10017",
false, false, false, false, 1251)
{}
private static readonly char[] ToChars = {
'\u0000', '\u0001', '\u0002', '\u0003', '\u0004', '\u0005',
'\u0006', '\u0007', '\u0008', '\u0009', '\u000A', '\u000B',
'\u000C', '\u000D', '\u000E', '\u000F', '\u0010', '\u0011',
'\u0012', '\u0013', '\u0014', '\u0015', '\u0016', '\u0017',
'\u0018', '\u0019', '\u001A', '\u001B', '\u001C', '\u001D',
'\u001E', '\u001F', '\u0020', '\u0021', '\u0022', '\u0023',
'\u0024', '\u0025', '\u0026', '\u0027', '\u0028', '\u0029',
'\u002A', '\u002B', '\u002C', '\u002D', '\u002E', '\u002F',
'\u0030', '\u0031', '\u0032', '\u0033', '\u0034', '\u0035',
'\u0036', '\u0037', '\u0038', '\u0039', '\u003A', '\u003B',
'\u003C', '\u003D', '\u003E', '\u003F', '\u0040', '\u0041',
'\u0042', '\u0043', '\u0044', '\u0045', '\u0046', '\u0047',
'\u0048', '\u0049', '\u004A', '\u004B', '\u004C', '\u004D',
'\u004E', '\u004F', '\u0050', '\u0051', '\u0052', '\u0053',
'\u0054', '\u0055', '\u0056', '\u0057', '\u0058', '\u0059',
'\u005A', '\u005B', '\u005C', '\u005D', '\u005E', '\u005F',
'\u0060', '\u0061', '\u0062', '\u0063', '\u0064', '\u0065',
'\u0066', '\u0067', '\u0068', '\u0069', '\u006A', '\u006B',
'\u006C', '\u006D', '\u006E', '\u006F', '\u0070', '\u0071',
'\u0072', '\u0073', '\u0074', '\u0075', '\u0076', '\u0077',
'\u0078', '\u0079', '\u007A', '\u007B', '\u007C', '\u007D',
'\u007E', '\u007F', '\u0410', '\u0411', '\u0412', '\u0413',
'\u0414', '\u0415', '\u0416', '\u0417', '\u0418', '\u0419',
'\u041A', '\u041B', '\u041C', '\u041D', '\u041E', '\u041F',
'\u0420', '\u0421', '\u0422', '\u0423', '\u0424', '\u0425',
'\u0426', '\u0427', '\u0428', '\u0429', '\u042A', '\u042B',
'\u042C', '\u042D', '\u042E', '\u042F', '\u2020', '\u00B0',
'\u0490', '\u00A3', '\u00A7', '\u2022', '\u00B6', '\u0406',
'\u00AE', '\u00A9', '\u2122', '\u0402', '\u0452', '\u2260',
'\u0403', '\u0453', '\u221E', '\u00B1', '\u2264', '\u2265',
'\u0456', '\u00B5', '\u0491', '\u0408', '\u0404', '\u0454',
'\u0407', '\u0457', '\u0409', '\u0459', '\u040A', '\u045A',
'\u0458', '\u0405', '\u00AC', '\u221A', '\u0192', '\u2248',
'\u2206', '\u00AB', '\u00BB', '\u2026', '\u00A0', '\u040B',
'\u045B', '\u040C', '\u045C', '\u0455', '\u2013', '\u2014',
'\u201C', '\u201D', '\u2018', '\u2019', '\u00F7', '\u201E',
'\u040E', '\u045E', '\u040F', '\u045F', '\u2116', '\u0401',
'\u0451', '\u044F', '\u0430', '\u0431', '\u0432', '\u0433',
'\u0434', '\u0435', '\u0436', '\u0437', '\u0438', '\u0439',
'\u043A', '\u043B', '\u043C', '\u043D', '\u043E', '\u043F',
'\u0440', '\u0441', '\u0442', '\u0443', '\u0444', '\u0445',
'\u0446', '\u0447', '\u0448', '\u0449', '\u044A', '\u044B',
'\u044C', '\u044D', '\u044E', '\u20AC',
};
protected override void ToBytes(char[] chars, int charIndex, int
charCount,
byte[] bytes, int byteIndex)
{
int ch;
while(charCount > 0)
{
ch = (int)(chars[charIndex++]);
if(ch >= 0) switch(ch)
{
case 0x0020:
case 0x0021:
case 0x0022:
case 0x0023:
case 0x0024:
case 0x0025:
case 0x0026:
case 0x0027:
case 0x0028:
case 0x0029:
case 0x002A:
case 0x002B:
case 0x002C:
case 0x002D:
case 0x002E:
case 0x002F:
case 0x0030:
case 0x0031:
case 0x0032:
case 0x0033:
case 0x0034:
case 0x0035:
case 0x0036:
case 0x0037:
case 0x0038:
case 0x0039:
case 0x003A:
case 0x003B:
case 0x003C:
case 0x003D:
case 0x003E:
case 0x003F:
case 0x0040:
case 0x0041:
case 0x0042:
case 0x0043:
case 0x0044:
case 0x0045:
case 0x0046:
case 0x0047:
case 0x0048:
case 0x0049:
case 0x004A:
case 0x004B:
case 0x004C:
case 0x004D:
case 0x004E:
case 0x004F:
case 0x0050:
case 0x0051:
case 0x0052:
case 0x0053:
case 0x0054:
case 0x0055:
case 0x0056:
case 0x0057:
case 0x0058:
case 0x0059:
case 0x005A:
case 0x005B:
case 0x005C:
case 0x005D:
case 0x005E:
case 0x005F:
case 0x0060:
case 0x0061:
case 0x0062:
case 0x0063:
case 0x0064:
case 0x0065:
case 0x0066:
case 0x0067:
case 0x0068:
case 0x0069:
case 0x006A:
case 0x006B:
case 0x006C:
case 0x006D:
case 0x006E:
case 0x006F:
case 0x0070:
case 0x0071:
case 0x0072:
case 0x0073:
case 0x0074:
case 0x0075:
case 0x0076:
case 0x0077:
case 0x0078:
case 0x0079:
case 0x007A:
case 0x007B:
case 0x007C:
case 0x007D:
case 0x007E:
case 0x00A3:
case 0x00A9:
case 0x00B1:
case 0x00B5:
break;
case 0x00A0: ch = 0xCA; break;
case 0x00A7: ch = 0xA4; break;
case 0x00AB: ch = 0xC7; break;
case 0x00AC: ch = 0xC2; break;
case 0x00AE: ch = 0xA8; break;
case 0x00B0: ch = 0xA1; break;
case 0x00B6: ch = 0xA6; break;
case 0x00BB: ch = 0xC8; break;
case 0x00F7: ch = 0xD6; break;
case 0x0192: ch = 0xC4; break;
case 0x0401: ch = 0xDD; break;
case 0x0402: ch = 0xAB; break;
case 0x0403: ch = 0xAE; break;
case 0x0404: ch = 0xB8; break;
case 0x0405: ch = 0xC1; break;
case 0x0406: ch = 0xA7; break;
case 0x0407: ch = 0xBA; break;
case 0x0408: ch = 0xB7; break;
case 0x0409: ch = 0xBC; break;
case 0x040A: ch = 0xBE; break;
case 0x040B: ch = 0xCB; break;
case 0x040C: ch = 0xCD; break;
case 0x040E: ch = 0xD8; break;
case 0x040F: ch = 0xDA; break;
case 0x0410:
case 0x0411:
case 0x0412:
case 0x0413:
case 0x0414:
case 0x0415:
case 0x0416:
case 0x0417:
case 0x0418:
case 0x0419:
case 0x041A:
case 0x041B:
case 0x041C:
case 0x041D:
case 0x041E:
case 0x041F:
case 0x0420:
case 0x0421:
case 0x0422:
case 0x0423:
case 0x0424:
case 0x0425:
case 0x0426:
case 0x0427:
case 0x0428:
case 0x0429:
case 0x042A:
case 0x042B:
case 0x042C:
case 0x042D:
case 0x042E:
case 0x042F:
ch -= 0x0390;
break;
case 0x0430:
case 0x0431:
case 0x0432:
case 0x0433:
case 0x0434:
case 0x0435:
case 0x0436:
case 0x0437:
case 0x0438:
case 0x0439:
case 0x043A:
case 0x043B:
case 0x043C:
case 0x043D:
case 0x043E:
case 0x043F:
case 0x0440:
case 0x0441:
case 0x0442:
case 0x0443:
case 0x0444:
case 0x0445:
case 0x0446:
case 0x0447:
case 0x0448:
case 0x0449:
case 0x044A:
case 0x044B:
case 0x044C:
case 0x044D:
case 0x044E:
ch -= 0x0350;
break;
case 0x044F: ch = 0xDF; break;
case 0x0451: ch = 0xDE; break;
case 0x0452: ch = 0xAC; break;
case 0x0453: ch = 0xAF; break;
case 0x0454: ch = 0xB9; break;
case 0x0455: ch = 0xCF; break;
case 0x0456: ch = 0xB4; break;
case 0x0457: ch = 0xBB; break;
case 0x0458: ch = 0xC0; break;
case 0x0459: ch = 0xBD; break;
case 0x045A: ch = 0xBF; break;
case 0x045B: ch = 0xCC; break;
case 0x045C: ch = 0xCE; break;
case 0x045E: ch = 0xD9; break;
case 0x045F: ch = 0xDB; break;
case 0x0490: ch = 0xA2; break;
case 0x0491: ch = 0xB6; break;
case 0x2013: ch = 0xD0; break;
case 0x2014: ch = 0xD1; break;
case 0x2018: ch = 0xD4; break;
case 0x2019: ch = 0xD5; break;
case 0x201C: ch = 0xD2; break;
case 0x201D: ch = 0xD3; break;
case 0x201E: ch = 0xD7; break;
case 0x2020: ch = 0xA0; break;
case 0x2022: ch = 0xA5; break;
case 0x2026: ch = 0xC9; break;
case 0x20AC: ch = 0xFF; break;
case 0x2116: ch = 0xDC; break;
case 0x2122: ch = 0xAA; break;
case 0x2206: ch = 0xC6; break;
case 0x221A: ch = 0xC3; break;
case 0x221E: ch = 0xB0; break;
case 0x2248: ch = 0xC5; break;
case 0x2260: ch = 0xAD; break;
case 0x2264: ch = 0xB2; break;
case 0x2265: ch = 0xB3; break;
default: ch = 0x3F; break;
}
bytes[byteIndex++] = (byte)ch;
--charCount;
}
}
protected override void ToBytes(String s, int charIndex, int charCount,
byte[] bytes, int byteIndex)
{
int ch;
while(charCount > 0)
{
ch = (int)(s[charIndex++]);
if(ch >= 0) switch(ch)
{
case 0x0020:
case 0x0021:
case 0x0022:
case 0x0023:
case 0x0024:
case 0x0025:
case 0x0026:
case 0x0027:
case 0x0028:
case 0x0029:
case 0x002A:
case 0x002B:
case 0x002C:
case 0x002D:
case 0x002E:
case 0x002F:
case 0x0030:
case 0x0031:
case 0x0032:
case 0x0033:
case 0x0034:
case 0x0035:
case 0x0036:
case 0x0037:
case 0x0038:
case 0x0039:
case 0x003A:
case 0x003B:
case 0x003C:
case 0x003D:
case 0x003E:
case 0x003F:
case 0x0040:
case 0x0041:
case 0x0042:
case 0x0043:
case 0x0044:
case 0x0045:
case 0x0046:
case 0x0047:
case 0x0048:
case 0x0049:
case 0x004A:
case 0x004B:
case 0x004C:
case 0x004D:
case 0x004E:
case 0x004F:
case 0x0050:
case 0x0051:
case 0x0052:
case 0x0053:
case 0x0054:
case 0x0055:
case 0x0056:
case 0x0057:
case 0x0058:
case 0x0059:
case 0x005A:
case 0x005B:
case 0x005C:
case 0x005D:
case 0x005E:
case 0x005F:
case 0x0060:
case 0x0061:
case 0x0062:
case 0x0063:
case 0x0064:
case 0x0065:
case 0x0066:
case 0x0067:
case 0x0068:
case 0x0069:
case 0x006A:
case 0x006B:
case 0x006C:
case 0x006D:
case 0x006E:
case 0x006F:
case 0x0070:
case 0x0071:
case 0x0072:
case 0x0073:
case 0x0074:
case 0x0075:
case 0x0076:
case 0x0077:
case 0x0078:
case 0x0079:
case 0x007A:
case 0x007B:
case 0x007C:
case 0x007D:
case 0x007E:
case 0x00A3:
case 0x00A9:
case 0x00B1:
case 0x00B5:
break;
case 0x00A0: ch = 0xCA; break;
case 0x00A7: ch = 0xA4; break;
case 0x00AB: ch = 0xC7; break;
case 0x00AC: ch = 0xC2; break;
case 0x00AE: ch = 0xA8; break;
case 0x00B0: ch = 0xA1; break;
case 0x00B6: ch = 0xA6; break;
case 0x00BB: ch = 0xC8; break;
case 0x00F7: ch = 0xD6; break;
case 0x0192: ch = 0xC4; break;
case 0x0401: ch = 0xDD; break;
case 0x0402: ch = 0xAB; break;
case 0x0403: ch = 0xAE; break;
case 0x0404: ch = 0xB8; break;
case 0x0405: ch = 0xC1; break;
case 0x0406: ch = 0xA7; break;
case 0x0407: ch = 0xBA; break;
case 0x0408: ch = 0xB7; break;
case 0x0409: ch = 0xBC; break;
case 0x040A: ch = 0xBE; break;
case 0x040B: ch = 0xCB; break;
case 0x040C: ch = 0xCD; break;
case 0x040E: ch = 0xD8; break;
case 0x040F: ch = 0xDA; break;
case 0x0410:
case 0x0411:
case 0x0412:
case 0x0413:
case 0x0414:
case 0x0415:
case 0x0416:
case 0x0417:
case 0x0418:
case 0x0419:
case 0x041A:
case 0x041B:
case 0x041C:
case 0x041D:
case 0x041E:
case 0x041F:
case 0x0420:
case 0x0421:
case 0x0422:
case 0x0423:
case 0x0424:
case 0x0425:
case 0x0426:
case 0x0427:
case 0x0428:
case 0x0429:
case 0x042A:
case 0x042B:
case 0x042C:
case 0x042D:
case 0x042E:
case 0x042F:
ch -= 0x0390;
break;
case 0x0430:
case 0x0431:
case 0x0432:
case 0x0433:
case 0x0434:
case 0x0435:
case 0x0436:
case 0x0437:
case 0x0438:
case 0x0439:
case 0x043A:
case 0x043B:
case 0x043C:
case 0x043D:
case 0x043E:
case 0x043F:
case 0x0440:
case 0x0441:
case 0x0442:
case 0x0443:
case 0x0444:
case 0x0445:
case 0x0446:
case 0x0447:
case 0x0448:
case 0x0449:
case 0x044A:
case 0x044B:
case 0x044C:
case 0x044D:
case 0x044E:
ch -= 0x0350;
break;
case 0x044F: ch = 0xDF; break;
case 0x0451: ch = 0xDE; break;
case 0x0452: ch = 0xAC; break;
case 0x0453: ch = 0xAF; break;
case 0x0454: ch = 0xB9; break;
case 0x0455: ch = 0xCF; break;
case 0x0456: ch = 0xB4; break;
case 0x0457: ch = 0xBB; break;
case 0x0458: ch = 0xC0; break;
case 0x0459: ch = 0xBD; break;
case 0x045A: ch = 0xBF; break;
case 0x045B: ch = 0xCC; break;
case 0x045C: ch = 0xCE; break;
case 0x045E: ch = 0xD9; break;
case 0x045F: ch = 0xDB; break;
case 0x0490: ch = 0xA2; break;
case 0x0491: ch = 0xB6; break;
case 0x2013: ch = 0xD0; break;
case 0x2014: ch = 0xD1; break;
case 0x2018: ch = 0xD4; break;
case 0x2019: ch = 0xD5; break;
case 0x201C: ch = 0xD2; break;
case 0x201D: ch = 0xD3; break;
case 0x201E: ch = 0xD7; break;
case 0x2020: ch = 0xA0; break;
case 0x2022: ch = 0xA5; break;
case 0x2026: ch = 0xC9; break;
case 0x20AC: ch = 0xFF; break;
case 0x2116: ch = 0xDC; break;
case 0x2122: ch = 0xAA; break;
case 0x2206: ch = 0xC6; break;
case 0x221A: ch = 0xC3; break;
case 0x221E: ch = 0xB0; break;
case 0x2248: ch = 0xC5; break;
case 0x2260: ch = 0xAD; break;
case 0x2264: ch = 0xB2; break;
case 0x2265: ch = 0xB3; break;
default: ch = 0x3F; break;
}
bytes[byteIndex++] = (byte)ch;
--charCount;
}
}
}; // class CP10017
public class ENCwindows_10017 : CP10017
{
public ENCwindows_10017() : base() {}
}; // class ENCwindows_10017
}; // namespace I18N.Other
--- NEW FILE ---
/*
* CP10021.cs - MAC - Thai code page.
*
* Copyright (c) 2002 Southern Storm Software, Pty Ltd
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program 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 General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
// Generated from "mac-10021.ucm".
namespace I18N.Other
{
using System;
using I18N.Common;
public class CP10021 : ByteEncoding
{
public CP10021()
: base(10021, ToChars, "MAC - Thai",
"windows-10021", "windows-10021", "windows-10021",
false, false, false, false, 874)
{}
private static readonly char[] ToChars = {
'\u0000', '\u0001', '\u0002', '\u0003', '\u0004', '\u0005',
'\u0006', '\u0007', '\u0008', '\u0009', '\u000A', '\u000B',
'\u000C', '\u000D', '\u000E', '\u000F', '\u0010', '\u0011',
'\u0012', '\u0013', '\u0014', '\u0015', '\u0016', '\u0017',
'\u0018', '\u0019', '\u001A', '\u001B', '\u001C', '\u001D',
'\u001E', '\u001F', '\u0020', '\u0021', '\u0022', '\u0023',
'\u0024', '\u0025', '\u0026', '\u0027', '\u0028', '\u0029',
'\u002A', '\u002B', '\u002C', '\u002D', '\u002E', '\u002F',
'\u0030', '\u0031', '\u0032', '\u0033', '\u0034', '\u0035',
'\u0036', '\u0037', '\u0038', '\u0039', '\u003A', '\u003B',
'\u003C', '\u003D', '\u003E', '\u003F', '\u0040', '\u0041',
'\u0042', '\u0043', '\u0044', '\u0045', '\u0046', '\u0047',
'\u0048', '\u0049', '\u004A', '\u004B', '\u004C', '\u004D',
'\u004E', '\u004F', '\u0050', '\u0051', '\u0052', '\u0053',
'\u0054', '\u0055', '\u0056', '\u0057', '\u0058', '\u0059',
'\u005A', '\u005B', '\u005C', '\u005D', '\u005E', '\u005F',
'\u0060', '\u0061', '\u0062', '\u0063', '\u0064', '\u0065',
'\u0066', '\u0067', '\u0068', '\u0069', '\u006A', '\u006B',
'\u006C', '\u006D', '\u006E', '\u006F', '\u0070', '\u0071',
'\u0072', '\u0073', '\u0074', '\u0075', '\u0076', '\u0077',
'\u0078', '\u0079', '\u007A', '\u007B', '\u007C', '\u007D',
'\u007E', '\u007F', '\u00AB', '\u00BB', '\u2026', '\u0E48',
'\u0E49', '\u0E4A', '\u0E4B', '\u0E4C', '\u0E48', '\u0E49',
'\u0E4A', '\u0E4B', '\u0E4C', '\u201C', '\u201D', '\u0E4D',
'\u0090', '\u2022', '\u0E31', '\u0E47', '\u0E34', '\u0E35',
'\u0E36', '\u0E37', '\u0E48', '\u0E49', '\u0E4A', '\u0E4B',
'\u0E4C', '\u2018', '\u2019', '\u009F', '\u00A0', '\u0E01',
'\u0E02', '\u0E03', '\u0E04', '\u0E05', '\u0E06', '\u0E07',
'\u0E08', '\u0E09', '\u0E0A', '\u0E0B', '\u0E0C', '\u0E0D',
'\u0E0E', '\u0E0F', '\u0E10', '\u0E11', '\u0E12', '\u0E13',
'\u0E14', '\u0E15', '\u0E16', '\u0E17', '\u0E18', '\u0E19',
'\u0E1A', '\u0E1B', '\u0E1C', '\u0E1D', '\u0E1E', '\u0E1F',
'\u0E20', '\u0E21', '\u0E22', '\u0E23', '\u0E24', '\u0E25',
'\u0E26', '\u0E27', '\u0E28', '\u0E29', '\u0E2A', '\u0E2B',
'\u0E2C', '\u0E2D', '\u0E2E', '\u0E2F', '\u0E30', '\u0E31',
'\u0E32', '\u0E33', '\u0E34', '\u0E35', '\u0E36', '\u0E37',
'\u0E38', '\u0E39', '\u0E3A', '\u2060', '\u200B', '\u2013',
'\u2014', '\u0E3F', '\u0E40', '\u0E41', '\u0E42', '\u0E43',
'\u0E44', '\u0E45', '\u0E46', '\u0E47', '\u0E48', '\u0E49',
'\u0E4A', '\u0E4B', '\u0E4C', '\u0E4D', '\u2122', '\u0E4F',
'\u0E50', '\u0E51', '\u0E52', '\u0E53', '\u0E54', '\u0E55',
'\u0E56', '\u0E57', '\u0E58', '\u0E59', '\u00AE', '\u00A9',
'\u00FC', '\u00FD', '\u00FE', '\u00FF',
};
protected override void ToBytes(char[] chars, int charIndex, int
charCount,
byte[] bytes, int byteIndex)
{
int ch;
while(charCount > 0)
{
ch = (int)(chars[charIndex++]);
if(ch >= 0) switch(ch)
{
case 0x0020:
case 0x0021:
case 0x0022:
case 0x0023:
case 0x0024:
case 0x0025:
case 0x0026:
case 0x0027:
case 0x0028:
case 0x0029:
case 0x002A:
case 0x002B:
case 0x002C:
case 0x002D:
case 0x002E:
case 0x002F:
case 0x0030:
case 0x0031:
case 0x0032:
case 0x0033:
case 0x0034:
case 0x0035:
case 0x0036:
case 0x0037:
case 0x0038:
case 0x0039:
case 0x003A:
case 0x003B:
case 0x003C:
case 0x003D:
case 0x003E:
case 0x003F:
case 0x0040:
case 0x0041:
case 0x0042:
case 0x0043:
case 0x0044:
case 0x0045:
case 0x0046:
case 0x0047:
case 0x0048:
case 0x0049:
case 0x004A:
case 0x004B:
case 0x004C:
case 0x004D:
case 0x004E:
case 0x004F:
case 0x0050:
case 0x0051:
case 0x0052:
case 0x0053:
case 0x0054:
case 0x0055:
case 0x0056:
case 0x0057:
case 0x0058:
case 0x0059:
case 0x005A:
case 0x005B:
case 0x005C:
case 0x005D:
case 0x005E:
case 0x005F:
case 0x0060:
case 0x0061:
case 0x0062:
case 0x0063:
case 0x0064:
case 0x0065:
case 0x0066:
case 0x0067:
case 0x0068:
case 0x0069:
case 0x006A:
case 0x006B:
case 0x006C:
case 0x006D:
case 0x006E:
case 0x006F:
case 0x0070:
case 0x0071:
case 0x0072:
case 0x0073:
case 0x0074:
case 0x0075:
case 0x0076:
case 0x0077:
case 0x0078:
case 0x0079:
case 0x007A:
case 0x007B:
case 0x007C:
case 0x007D:
case 0x007E:
case 0x00A0:
break;
case 0x00A9: ch = 0xFB; break;
case 0x00AB: ch = 0x80; break;
case 0x00AE: ch = 0xFA; break;
case 0x00BB: ch = 0x81; break;
case 0x0E01:
case 0x0E02:
case 0x0E03:
case 0x0E04:
case 0x0E05:
case 0x0E06:
case 0x0E07:
case 0x0E08:
case 0x0E09:
case 0x0E0A:
case 0x0E0B:
case 0x0E0C:
case 0x0E0D:
case 0x0E0E:
case 0x0E0F:
case 0x0E10:
case 0x0E11:
case 0x0E12:
case 0x0E13:
case 0x0E14:
case 0x0E15:
case 0x0E16:
case 0x0E17:
case 0x0E18:
case 0x0E19:
case 0x0E1A:
case 0x0E1B:
case 0x0E1C:
case 0x0E1D:
case 0x0E1E:
case 0x0E1F:
case 0x0E20:
case 0x0E21:
case 0x0E22:
case 0x0E23:
case 0x0E24:
case 0x0E25:
case 0x0E26:
case 0x0E27:
case 0x0E28:
case 0x0E29:
case 0x0E2A:
case 0x0E2B:
case 0x0E2C:
case 0x0E2D:
case 0x0E2E:
case 0x0E2F:
case 0x0E30:
case 0x0E31:
case 0x0E32:
case 0x0E33:
case 0x0E34:
case 0x0E35:
case 0x0E36:
case 0x0E37:
case 0x0E38:
case 0x0E39:
case 0x0E3A:
ch -= 0x0D60;
break;
case 0x0E3F:
case 0x0E40:
case 0x0E41:
case 0x0E42:
case 0x0E43:
case 0x0E44:
case 0x0E45:
case 0x0E46:
case 0x0E47:
case 0x0E48:
case 0x0E49:
case 0x0E4A:
case 0x0E4B:
case 0x0E4C:
case 0x0E4D:
ch -= 0x0D60;
break;
case 0x0E4F:
case 0x0E50:
case 0x0E51:
case 0x0E52:
case 0x0E53:
case 0x0E54:
case 0x0E55:
case 0x0E56:
case 0x0E57:
case 0x0E58:
case 0x0E59:
ch -= 0x0D60;
break;
case 0x200B: ch = 0xDC; break;
case 0x2013: ch = 0xDD; break;
case 0x2014: ch = 0xDE; break;
case 0x2018: ch = 0x9D; break;
case 0x2019: ch = 0x9E; break;
case 0x201C: ch = 0x8D; break;
case 0x201D: ch = 0x8E; break;
case 0x2022: ch = 0x91; break;
case 0x2026: ch = 0x82; break;
case 0x2060: ch = 0xDB; break;
case 0x2122: ch = 0xEE; break;
default: ch = 0x3F; break;
}
bytes[byteIndex++] = (byte)ch;
--charCount;
}
}
protected override void ToBytes(String s, int charIndex, int charCount,
byte[] bytes, int byteIndex)
{
int ch;
while(charCount > 0)
{
ch = (int)(s[charIndex++]);
if(ch >= 0) switch(ch)
{
case 0x0020:
case 0x0021:
case 0x0022:
case 0x0023:
case 0x0024:
case 0x0025:
case 0x0026:
case 0x0027:
case 0x0028:
case 0x0029:
case 0x002A:
case 0x002B:
case 0x002C:
case 0x002D:
case 0x002E:
case 0x002F:
case 0x0030:
case 0x0031:
case 0x0032:
case 0x0033:
case 0x0034:
case 0x0035:
case 0x0036:
case 0x0037:
case 0x0038:
case 0x0039:
case 0x003A:
case 0x003B:
case 0x003C:
case 0x003D:
case 0x003E:
case 0x003F:
case 0x0040:
case 0x0041:
case 0x0042:
case 0x0043:
case 0x0044:
case 0x0045:
case 0x0046:
case 0x0047:
case 0x0048:
case 0x0049:
case 0x004A:
case 0x004B:
case 0x004C:
case 0x004D:
case 0x004E:
case 0x004F:
case 0x0050:
case 0x0051:
case 0x0052:
case 0x0053:
case 0x0054:
case 0x0055:
case 0x0056:
case 0x0057:
case 0x0058:
case 0x0059:
case 0x005A:
case 0x005B:
case 0x005C:
case 0x005D:
case 0x005E:
case 0x005F:
case 0x0060:
case 0x0061:
case 0x0062:
case 0x0063:
case 0x0064:
case 0x0065:
case 0x0066:
case 0x0067:
case 0x0068:
case 0x0069:
case 0x006A:
case 0x006B:
case 0x006C:
case 0x006D:
case 0x006E:
case 0x006F:
case 0x0070:
case 0x0071:
case 0x0072:
case 0x0073:
case 0x0074:
case 0x0075:
case 0x0076:
case 0x0077:
case 0x0078:
case 0x0079:
case 0x007A:
case 0x007B:
case 0x007C:
case 0x007D:
case 0x007E:
case 0x00A0:
break;
case 0x00A9: ch = 0xFB; break;
case 0x00AB: ch = 0x80; break;
case 0x00AE: ch = 0xFA; break;
case 0x00BB: ch = 0x81; break;
case 0x0E01:
case 0x0E02:
case 0x0E03:
case 0x0E04:
case 0x0E05:
case 0x0E06:
case 0x0E07:
case 0x0E08:
case 0x0E09:
case 0x0E0A:
case 0x0E0B:
case 0x0E0C:
case 0x0E0D:
case 0x0E0E:
case 0x0E0F:
case 0x0E10:
case 0x0E11:
case 0x0E12:
case 0x0E13:
case 0x0E14:
case 0x0E15:
case 0x0E16:
case 0x0E17:
case 0x0E18:
case 0x0E19:
case 0x0E1A:
case 0x0E1B:
case 0x0E1C:
case 0x0E1D:
case 0x0E1E:
case 0x0E1F:
case 0x0E20:
case 0x0E21:
case 0x0E22:
case 0x0E23:
case 0x0E24:
case 0x0E25:
case 0x0E26:
case 0x0E27:
case 0x0E28:
case 0x0E29:
case 0x0E2A:
case 0x0E2B:
case 0x0E2C:
case 0x0E2D:
case 0x0E2E:
case 0x0E2F:
case 0x0E30:
case 0x0E31:
case 0x0E32:
case 0x0E33:
case 0x0E34:
case 0x0E35:
case 0x0E36:
case 0x0E37:
case 0x0E38:
case 0x0E39:
case 0x0E3A:
ch -= 0x0D60;
break;
case 0x0E3F:
case 0x0E40:
case 0x0E41:
case 0x0E42:
case 0x0E43:
case 0x0E44:
case 0x0E45:
case 0x0E46:
case 0x0E47:
case 0x0E48:
case 0x0E49:
case 0x0E4A:
case 0x0E4B:
case 0x0E4C:
case 0x0E4D:
ch -= 0x0D60;
break;
case 0x0E4F:
case 0x0E50:
case 0x0E51:
case 0x0E52:
case 0x0E53:
case 0x0E54:
case 0x0E55:
case 0x0E56:
case 0x0E57:
case 0x0E58:
case 0x0E59:
ch -= 0x0D60;
break;
case 0x200B: ch = 0xDC; break;
case 0x2013: ch = 0xDD; break;
case 0x2014: ch = 0xDE; break;
case 0x2018: ch = 0x9D; break;
case 0x2019: ch = 0x9E; break;
case 0x201C: ch = 0x8D; break;
case 0x201D: ch = 0x8E; break;
case 0x2022: ch = 0x91; break;
case 0x2026: ch = 0x82; break;
case 0x2060: ch = 0xDB; break;
case 0x2122: ch = 0xEE; break;
default: ch = 0x3F; break;
}
bytes[byteIndex++] = (byte)ch;
--charCount;
}
}
}; // class CP10021
public class ENCwindows_10021 : CP10021
{
public ENCwindows_10021() : base() {}
}; // class ENCwindows_10021
}; // namespace I18N.Other
--- NEW FILE ---
#=======================================================================
# File name: CYRILLIC.TXT
#
# Contents: Map (external version) from Mac OS Cyrillic
# character set to Unicode 2.1 through Unicode 3.2
#
# Copyright: (c) 1995-2002 by Apple Computer, Inc., all rights
# reserved.
#
# Contact: address@hidden
#
# Changes:
#
# b3,c1 2002-Dec-19 Update URLs, notes. Matches internal
# utom<b2>.
# b02 1999-Sep-22 Encoding changed for Mac OS 9.0 to merge
# with Mac OS Ukrainian and support EURO SIGN;
# Change mappings for 0xA2, 0xB6, and 0xFF.
# Update contact e-mail address. Matches
# internal utom<b2>, ufrm<b2>, and Text
# Encoding Converter version 1.5.
# n05 1998-Feb-05 Update header comments to new format; no
# mapping changes. Matches internal utom<n3>,
# ufrm<n13>, and Text Encoding Converter
# version 1.3.
# n03 1995-Apr-15 First version (after fixing some typos).
# Matches internal ufrm<n5>.
#
# Standard header:
# ----------------
#
# Apple, the Apple logo, and Macintosh are trademarks of Apple
# Computer, Inc., registered in the United States and other countries.
# Unicode is a trademark of Unicode Inc. For the sake of brevity,
# throughout this document, "Macintosh" can be used to refer to
# Macintosh computers and "Unicode" can be used to refer to the
# Unicode standard.
#
# Apple makes no warranty or representation, either express or
# implied, with respect to these tables, their quality, accuracy, or
# fitness for a particular purpose. In no event will Apple be liable
# for direct, indirect, special, incidental, or consequential damages
# resulting from any defect or inaccuracy in this document or the
# accompanying tables.
#
# These mapping tables and character lists are subject to change.
# The latest tables should be available from the following:
#
# <http://www.unicode.org/Public/MAPPINGS/VENDORS/APPLE/>
#
# For general information about Mac OS encodings and these mapping
# tables, see the file "README.TXT".
#
# Format:
# -------
#
# Three tab-separated columns;
# '#' begins a comment which continues to the end of the line.
# Column #1 is the Mac OS Cyrillic code (in hex as 0xNN)
# Column #2 is the corresponding Unicode (in hex as 0xNNNN)
# Column #3 is a comment containing the Unicode name
#
# The entries are in Mac OS Cyrillic code order.
#
# Control character mappings are not shown in this table, following
# the conventions of the standard UTC mapping tables. However, the
# Mac OS Cyrillic character set uses the standard control characters
# at 0x00-0x1F and 0x7F.
#
# Notes on Mac OS Cyrillic:
# -------------------------
#
# This is the "Euro sign" version of Mac Cyrillic for Mac OS 9.0 and
# later. Before Mac OS 9.0, there were two separate Slavic Cyrillic
# encodings:
#
# 1. The Cyrillic currency sign variant (used for localized Russian
# and Bulgarian systems), which had the following:
# 0xA2 U+00A2 CENT SIGN
# 0xB6 U+2202 PARTIAL DIFFERENTIAL
# 0xFF U+00A4 CURRENCY SIGN
#
# 2. The Ukrainian currency sign variant (used for localized Ukrainian
# systems and the pre-9.0 Cyrillic Language Kit), which had the
# following:
# 0xA2 U+0490 CYRILLIC CAPITAL LETTER GHE WITH UPTURN
# 0xB6 U+0491 CYRILLIC SMALL LETTER GHE WITH UPTURN
# 0xFF U+00A4 CURRENCY SIGN
#
# This new Cyrillic Euro sign version is based on the old Ukrainian
# currency sign variant, with 0xFF changed to be EURO SIGN.
#
# The Mac OS Cyrillic encoding includes the Cyrillic letter repertoire
# of ISO 8859-5 (although not at the same code points). This covers
# most of the Slavic languages written in Cyrillic script.
#
# The Mac OS Cyrillic encoding also includes a number of characters
# needed for the Mac OS user interface and localization (e.g.
# ellipsis, bullet, copyright sign). All of the characters in Mac OS
# Cyrillic that are also in the Mac OS Roman encoding are at the
# same code point in both; this improves application compatibility.
#
# Note: There is a common Ukrainian glyph variation in which the glyph
# for CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I may or may not
# have a dot above.
#
# Unicode mapping issues and notes:
# ---------------------------------
#
# Details of mapping changes in each version:
# -------------------------------------------
#
# Changes from version n05 to version b02:
#
# - Encoding changed for Mac OS 9.0 to merge with Mac OS Ukrainian and
# support EURO SIGN. 0xA2 changed from U+00A2 to U+0490; 0xB6 changed
# from U+2202 to U+0491; 0xFF changed from U+00A4 to U+20AC.
#
##################
0x20 0x0020 # SPACE
0x21 0x0021 # EXCLAMATION MARK
0x22 0x0022 # QUOTATION MARK
0x23 0x0023 # NUMBER SIGN
0x24 0x0024 # DOLLAR SIGN
0x25 0x0025 # PERCENT SIGN
0x26 0x0026 # AMPERSAND
0x27 0x0027 # APOSTROPHE
0x28 0x0028 # LEFT PARENTHESIS
0x29 0x0029 # RIGHT PARENTHESIS
0x2A 0x002A # ASTERISK
0x2B 0x002B # PLUS SIGN
0x2C 0x002C # COMMA
0x2D 0x002D # HYPHEN-MINUS
0x2E 0x002E # FULL STOP
0x2F 0x002F # SOLIDUS
0x30 0x0030 # DIGIT ZERO
0x31 0x0031 # DIGIT ONE
0x32 0x0032 # DIGIT TWO
0x33 0x0033 # DIGIT THREE
0x34 0x0034 # DIGIT FOUR
0x35 0x0035 # DIGIT FIVE
0x36 0x0036 # DIGIT SIX
0x37 0x0037 # DIGIT SEVEN
0x38 0x0038 # DIGIT EIGHT
0x39 0x0039 # DIGIT NINE
0x3A 0x003A # COLON
0x3B 0x003B # SEMICOLON
0x3C 0x003C # LESS-THAN SIGN
0x3D 0x003D # EQUALS SIGN
0x3E 0x003E # GREATER-THAN SIGN
0x3F 0x003F # QUESTION MARK
0x40 0x0040 # COMMERCIAL AT
0x41 0x0041 # LATIN CAPITAL LETTER A
0x42 0x0042 # LATIN CAPITAL LETTER B
0x43 0x0043 # LATIN CAPITAL LETTER C
0x44 0x0044 # LATIN CAPITAL LETTER D
0x45 0x0045 # LATIN CAPITAL LETTER E
0x46 0x0046 # LATIN CAPITAL LETTER F
0x47 0x0047 # LATIN CAPITAL LETTER G
0x48 0x0048 # LATIN CAPITAL LETTER H
0x49 0x0049 # LATIN CAPITAL LETTER I
0x4A 0x004A # LATIN CAPITAL LETTER J
0x4B 0x004B # LATIN CAPITAL LETTER K
0x4C 0x004C # LATIN CAPITAL LETTER L
0x4D 0x004D # LATIN CAPITAL LETTER M
0x4E 0x004E # LATIN CAPITAL LETTER N
0x4F 0x004F # LATIN CAPITAL LETTER O
0x50 0x0050 # LATIN CAPITAL LETTER P
0x51 0x0051 # LATIN CAPITAL LETTER Q
0x52 0x0052 # LATIN CAPITAL LETTER R
0x53 0x0053 # LATIN CAPITAL LETTER S
0x54 0x0054 # LATIN CAPITAL LETTER T
0x55 0x0055 # LATIN CAPITAL LETTER U
0x56 0x0056 # LATIN CAPITAL LETTER V
0x57 0x0057 # LATIN CAPITAL LETTER W
0x58 0x0058 # LATIN CAPITAL LETTER X
0x59 0x0059 # LATIN CAPITAL LETTER Y
0x5A 0x005A # LATIN CAPITAL LETTER Z
0x5B 0x005B # LEFT SQUARE BRACKET
0x5C 0x005C # REVERSE SOLIDUS
0x5D 0x005D # RIGHT SQUARE BRACKET
0x5E 0x005E # CIRCUMFLEX ACCENT
0x5F 0x005F # LOW LINE
0x60 0x0060 # GRAVE ACCENT
0x61 0x0061 # LATIN SMALL LETTER A
0x62 0x0062 # LATIN SMALL LETTER B
0x63 0x0063 # LATIN SMALL LETTER C
0x64 0x0064 # LATIN SMALL LETTER D
0x65 0x0065 # LATIN SMALL LETTER E
0x66 0x0066 # LATIN SMALL LETTER F
0x67 0x0067 # LATIN SMALL LETTER G
0x68 0x0068 # LATIN SMALL LETTER H
0x69 0x0069 # LATIN SMALL LETTER I
0x6A 0x006A # LATIN SMALL LETTER J
0x6B 0x006B # LATIN SMALL LETTER K
0x6C 0x006C # LATIN SMALL LETTER L
0x6D 0x006D # LATIN SMALL LETTER M
0x6E 0x006E # LATIN SMALL LETTER N
0x6F 0x006F # LATIN SMALL LETTER O
0x70 0x0070 # LATIN SMALL LETTER P
0x71 0x0071 # LATIN SMALL LETTER Q
0x72 0x0072 # LATIN SMALL LETTER R
0x73 0x0073 # LATIN SMALL LETTER S
0x74 0x0074 # LATIN SMALL LETTER T
0x75 0x0075 # LATIN SMALL LETTER U
0x76 0x0076 # LATIN SMALL LETTER V
0x77 0x0077 # LATIN SMALL LETTER W
0x78 0x0078 # LATIN SMALL LETTER X
0x79 0x0079 # LATIN SMALL LETTER Y
0x7A 0x007A # LATIN SMALL LETTER Z
0x7B 0x007B # LEFT CURLY BRACKET
0x7C 0x007C # VERTICAL LINE
0x7D 0x007D # RIGHT CURLY BRACKET
0x7E 0x007E # TILDE
#
0x80 0x0410 # CYRILLIC CAPITAL LETTER A
0x81 0x0411 # CYRILLIC CAPITAL LETTER BE
0x82 0x0412 # CYRILLIC CAPITAL LETTER VE
0x83 0x0413 # CYRILLIC CAPITAL LETTER GHE
0x84 0x0414 # CYRILLIC CAPITAL LETTER DE
0x85 0x0415 # CYRILLIC CAPITAL LETTER IE
0x86 0x0416 # CYRILLIC CAPITAL LETTER ZHE
0x87 0x0417 # CYRILLIC CAPITAL LETTER ZE
0x88 0x0418 # CYRILLIC CAPITAL LETTER I
0x89 0x0419 # CYRILLIC CAPITAL LETTER SHORT I
0x8A 0x041A # CYRILLIC CAPITAL LETTER KA
0x8B 0x041B # CYRILLIC CAPITAL LETTER EL
0x8C 0x041C # CYRILLIC CAPITAL LETTER EM
0x8D 0x041D # CYRILLIC CAPITAL LETTER EN
0x8E 0x041E # CYRILLIC CAPITAL LETTER O
0x8F 0x041F # CYRILLIC CAPITAL LETTER PE
0x90 0x0420 # CYRILLIC CAPITAL LETTER ER
0x91 0x0421 # CYRILLIC CAPITAL LETTER ES
0x92 0x0422 # CYRILLIC CAPITAL LETTER TE
0x93 0x0423 # CYRILLIC CAPITAL LETTER U
0x94 0x0424 # CYRILLIC CAPITAL LETTER EF
0x95 0x0425 # CYRILLIC CAPITAL LETTER HA
0x96 0x0426 # CYRILLIC CAPITAL LETTER TSE
0x97 0x0427 # CYRILLIC CAPITAL LETTER CHE
0x98 0x0428 # CYRILLIC CAPITAL LETTER SHA
0x99 0x0429 # CYRILLIC CAPITAL LETTER SHCHA
0x9A 0x042A # CYRILLIC CAPITAL LETTER HARD SIGN
0x9B 0x042B # CYRILLIC CAPITAL LETTER YERU
0x9C 0x042C # CYRILLIC CAPITAL LETTER SOFT SIGN
0x9D 0x042D # CYRILLIC CAPITAL LETTER E
0x9E 0x042E # CYRILLIC CAPITAL LETTER YU
0x9F 0x042F # CYRILLIC CAPITAL LETTER YA
0xA0 0x2020 # DAGGER
0xA1 0x00B0 # DEGREE SIGN
0xA2 0x0490 # CYRILLIC CAPITAL LETTER GHE WITH UPTURN
0xA3 0x00A3 # POUND SIGN
0xA4 0x00A7 # SECTION SIGN
0xA5 0x2022 # BULLET
0xA6 0x00B6 # PILCROW SIGN
0xA7 0x0406 # CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I
0xA8 0x00AE # REGISTERED SIGN
0xA9 0x00A9 # COPYRIGHT SIGN
0xAA 0x2122 # TRADE MARK SIGN
0xAB 0x0402 # CYRILLIC CAPITAL LETTER DJE
0xAC 0x0452 # CYRILLIC SMALL LETTER DJE
0xAD 0x2260 # NOT EQUAL TO
0xAE 0x0403 # CYRILLIC CAPITAL LETTER GJE
0xAF 0x0453 # CYRILLIC SMALL LETTER GJE
0xB0 0x221E # INFINITY
0xB1 0x00B1 # PLUS-MINUS SIGN
0xB2 0x2264 # LESS-THAN OR EQUAL TO
0xB3 0x2265 # GREATER-THAN OR EQUAL TO
0xB4 0x0456 # CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I
0xB5 0x00B5 # MICRO SIGN
0xB6 0x0491 # CYRILLIC SMALL LETTER GHE WITH UPTURN
0xB7 0x0408 # CYRILLIC CAPITAL LETTER JE
0xB8 0x0404 # CYRILLIC CAPITAL LETTER UKRAINIAN IE
0xB9 0x0454 # CYRILLIC SMALL LETTER UKRAINIAN IE
0xBA 0x0407 # CYRILLIC CAPITAL LETTER YI
0xBB 0x0457 # CYRILLIC SMALL LETTER YI
0xBC 0x0409 # CYRILLIC CAPITAL LETTER LJE
0xBD 0x0459 # CYRILLIC SMALL LETTER LJE
0xBE 0x040A # CYRILLIC CAPITAL LETTER NJE
0xBF 0x045A # CYRILLIC SMALL LETTER NJE
0xC0 0x0458 # CYRILLIC SMALL LETTER JE
0xC1 0x0405 # CYRILLIC CAPITAL LETTER DZE
0xC2 0x00AC # NOT SIGN
0xC3 0x221A # SQUARE ROOT
0xC4 0x0192 # LATIN SMALL LETTER F WITH HOOK
0xC5 0x2248 # ALMOST EQUAL TO
0xC6 0x2206 # INCREMENT
0xC7 0x00AB # LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
0xC8 0x00BB # RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
0xC9 0x2026 # HORIZONTAL ELLIPSIS
0xCA 0x00A0 # NO-BREAK SPACE
0xCB 0x040B # CYRILLIC CAPITAL LETTER TSHE
0xCC 0x045B # CYRILLIC SMALL LETTER TSHE
0xCD 0x040C # CYRILLIC CAPITAL LETTER KJE
0xCE 0x045C # CYRILLIC SMALL LETTER KJE
0xCF 0x0455 # CYRILLIC SMALL LETTER DZE
0xD0 0x2013 # EN DASH
0xD1 0x2014 # EM DASH
0xD2 0x201C # LEFT DOUBLE QUOTATION MARK
0xD3 0x201D # RIGHT DOUBLE QUOTATION MARK
0xD4 0x2018 # LEFT SINGLE QUOTATION MARK
0xD5 0x2019 # RIGHT SINGLE QUOTATION MARK
0xD6 0x00F7 # DIVISION SIGN
0xD7 0x201E # DOUBLE LOW-9 QUOTATION MARK
0xD8 0x040E # CYRILLIC CAPITAL LETTER SHORT U
0xD9 0x045E # CYRILLIC SMALL LETTER SHORT U
0xDA 0x040F # CYRILLIC CAPITAL LETTER DZHE
0xDB 0x045F # CYRILLIC SMALL LETTER DZHE
0xDC 0x2116 # NUMERO SIGN
0xDD 0x0401 # CYRILLIC CAPITAL LETTER IO
0xDE 0x0451 # CYRILLIC SMALL LETTER IO
0xDF 0x044F # CYRILLIC SMALL LETTER YA
0xE0 0x0430 # CYRILLIC SMALL LETTER A
0xE1 0x0431 # CYRILLIC SMALL LETTER BE
0xE2 0x0432 # CYRILLIC SMALL LETTER VE
0xE3 0x0433 # CYRILLIC SMALL LETTER GHE
0xE4 0x0434 # CYRILLIC SMALL LETTER DE
0xE5 0x0435 # CYRILLIC SMALL LETTER IE
0xE6 0x0436 # CYRILLIC SMALL LETTER ZHE
0xE7 0x0437 # CYRILLIC SMALL LETTER ZE
0xE8 0x0438 # CYRILLIC SMALL LETTER I
0xE9 0x0439 # CYRILLIC SMALL LETTER SHORT I
0xEA 0x043A # CYRILLIC SMALL LETTER KA
0xEB 0x043B # CYRILLIC SMALL LETTER EL
0xEC 0x043C # CYRILLIC SMALL LETTER EM
0xED 0x043D # CYRILLIC SMALL LETTER EN
0xEE 0x043E # CYRILLIC SMALL LETTER O
0xEF 0x043F # CYRILLIC SMALL LETTER PE
0xF0 0x0440 # CYRILLIC SMALL LETTER ER
0xF1 0x0441 # CYRILLIC SMALL LETTER ES
0xF2 0x0442 # CYRILLIC SMALL LETTER TE
0xF3 0x0443 # CYRILLIC SMALL LETTER U
0xF4 0x0444 # CYRILLIC SMALL LETTER EF
0xF5 0x0445 # CYRILLIC SMALL LETTER HA
0xF6 0x0446 # CYRILLIC SMALL LETTER TSE
0xF7 0x0447 # CYRILLIC SMALL LETTER CHE
0xF8 0x0448 # CYRILLIC SMALL LETTER SHA
0xF9 0x0449 # CYRILLIC SMALL LETTER SHCHA
0xFA 0x044A # CYRILLIC SMALL LETTER HARD SIGN
0xFB 0x044B # CYRILLIC SMALL LETTER YERU
0xFC 0x044C # CYRILLIC SMALL LETTER SOFT SIGN
0xFD 0x044D # CYRILLIC SMALL LETTER E
0xFE 0x044E # CYRILLIC SMALL LETTER YU
0xFF 0x20AC # EURO SIGN
--- NEW FILE ---
#=======================================================================
# File name: THAI.TXT
#
# Contents: Map (external version) from Mac OS Thai
# character set to Unicode 3.2
#
# Copyright: (c) 1995-2002 by Apple Computer, Inc., all rights
# reserved.
#
# Contact: address@hidden
#
# Changes:
#
# b3,c1 2002-Dec-19 Update mapping for 0xDB to use new Unicode
# 3.2 WORD JOINER instead of ZWNBSP (BOM).
# Update URLs. Matches internal utom<b3>.
# b02 1999-Sep-22 Update contact e-mail address. Matches
# internal utom<b1>, ufrm<b2>, and Text
# Encoding Converter version 1.5.
# n07 1998-Feb-05 Update to match internal utom<n5>, ufrm<n13>
# and Text Encoding Converter version 1.3:
# Use standard Unicodes plus transcoding hints
# instead of single corporate characters; see
# details below. Also update header comments
# to new format.
# n04 1995-Nov-17 First version (after fixing some typos).
# Matches internal ufrm<n6>.
#
# Standard header:
# ----------------
#
# Apple, the Apple logo, and Macintosh are trademarks of Apple
# Computer, Inc., registered in the United States and other countries.
# Unicode is a trademark of Unicode Inc. For the sake of brevity,
# throughout this document, "Macintosh" can be used to refer to
# Macintosh computers and "Unicode" can be used to refer to the
# Unicode standard.
#
# Apple makes no warranty or representation, either express or
# implied, with respect to these tables, their quality, accuracy, or
# fitness for a particular purpose. In no event will Apple be liable
# for direct, indirect, special, incidental, or consequential damages
# resulting from any defect or inaccuracy in this document or the
# accompanying tables.
#
# These mapping tables and character lists are subject to change.
# The latest tables should be available from the following:
#
# <http://www.unicode.org/Public/MAPPINGS/VENDORS/APPLE/>
#
# For general information about Mac OS encodings and these mapping
# tables, see the file "README.TXT".
#
# Format:
# -------
#
# Three tab-separated columns;
# '#' begins a comment which continues to the end of the line.
# Column #1 is the Mac OS Thai code (in hex as 0xNN)
# Column #2 is the corresponding Unicode or Unicode sequence
# (in hex as 0xNNNN or 0xNNNN+0xNNNN).
# Column #3 is a comment containing the Unicode name
#
# The entries are in Mac OS Thai code order.
#
# Some of these mappings require the use of corporate characters.
# See the file "CORPCHAR.TXT" and notes below.
#
# Control character mappings are not shown in this table, following
# the conventions of the standard UTC mapping tables. However, the
# Mac OS Thai character set uses the standard control characters at
# 0x00-0x1F and 0x7F.
#
# Notes on Mac OS Thai:
# ---------------------
#
# Codes 0xA1-0xDA and 0xDF-0xFB are the character set from Thai
# standard TIS 620-2533, except that the following changes are
# made:
# 0xEE is TRADE MARK SIGN (instead of THAI CHARACTER YAMAKKAN)
# 0xFA is REGISTERED SIGN (instead of THAI CHARACTER ANGKHANKHU)
# 0xFB is COPYRIGHT SIGN (instead of THAI CHARACTER KHOMUT)
#
# Codes 0x80-0x82, 0x8D-0x8E, 0x91, 0x9D-0x9E, and 0xDB-0xDE are
# various additional punctuation marks (e.g. curly quotes,
# ellipsis), no-break space, and two special characters "word join"
# and "word break".
#
# Codes 0x83-0x8C, 0x8F, and 0x92-0x9C are for positional variants
# of the upper vowels, tone marks, and other signs at 0xD1,
# 0xD4-0xD7, and 0xE7-0xED. The positional variants would normally
# be considered presentation forms only and not characters. In most
# cases they are not typed directly; they are selected automatically
# at display time by the WorldScript software. However, using the
# Thai-DTP keyboard, the presentation forms can in fact be typed
# directly using dead keys. Thus they must be treated as real
# characters in the Mac OS Thai encoding. They are mapped using
# variant tags; see below.
#
# Several code points are undefined and unused (they cannot be
# typed using any of the Mac OS Thai keyboard layouts): 0x90, 0x9F,
# 0xFC-0xFE. These are not shown in the table below.
#
# Unicode mapping issues and notes:
# ---------------------------------
#
# The goals in the Apple mappings provided here are:
# - Ensure roundtrip mapping from every character in the Mac OS Thai
# character set to Unicode and back
# - Use standard Unicode characters as much as possible, to maximize
# interchangeability of the resulting Unicode text. Whenever possible,
# avoid having content carried by private-use characters.
#
# To satisfy both goals, we use private use characters to mark variants
# that are similar to a sequence of one or more standard Unicode
# characters.
#
# Apple has defined a block of 32 corporate characters as "transcoding
# hints." These are used in combination with standard Unicode characters
# to force them to be treated in a special way for mapping to other
# encodings; they have no other effect. Sixteen of these transcoding
# hints are "grouping hints" - they indicate that the next 2-4 Unicode
# characters should be treated as a single entity for transcoding. The
# other sixteen transcoding hints are "variant tags" - they are like
# combining characters, and can follow a standard Unicode (or a sequence
# consisting of a base character and other combining characters) to
# cause it to be treated in a special way for transcoding. These always
# terminate a combining-character sequence.
#
# The transcoding coding hints used in this mapping table are four
# variant tags in the range 0xF873-75. Since these are combined with
# standard Unicode characters, some characters in the Mac OS Thai
# character set map to a sequence of two Unicodes instead of a single
# Unicode character. For example, the Mac OS Thai character at 0x83 is a
# low-left positional variant of THAI CHARACTER MAI EK (the standard
# mapping is for the abstract character at 0xE8). So 0x83 is mapped to
# 0x0E48 (THAI CHARACTER MAI EK) + 0xF875 (a variant tag).
#
# Details of mapping changes in each version:
# -------------------------------------------
#
# Changes from version b02 to version b03/c01:
#
# - Update mapping for 0xDB to use new Unicode 3.2 character U+2060
# WORD JOINER instead of U+FEFF ZERO WIDTH NO-BREAK SPACE (BOM)
#
# Changes from version n04 to version n07:
#
# - Changed mappings of the positional variants to use standard
# Unicodes + transcoding hint, instead of using single corporate
# zone characters. This affected the mappings for the following:
# 0x83-08C, 0x8F, 0x92-0x9C
#
# - Just comment out unused code points in the table, instead
# of mapping them to U+FFFD.
#
##################
0x20 0x0020 # SPACE
0x21 0x0021 # EXCLAMATION MARK
0x22 0x0022 # QUOTATION MARK
0x23 0x0023 # NUMBER SIGN
0x24 0x0024 # DOLLAR SIGN
0x25 0x0025 # PERCENT SIGN
0x26 0x0026 # AMPERSAND
0x27 0x0027 # APOSTROPHE
0x28 0x0028 # LEFT PARENTHESIS
0x29 0x0029 # RIGHT PARENTHESIS
0x2A 0x002A # ASTERISK
0x2B 0x002B # PLUS SIGN
0x2C 0x002C # COMMA
0x2D 0x002D # HYPHEN-MINUS
0x2E 0x002E # FULL STOP
0x2F 0x002F # SOLIDUS
0x30 0x0030 # DIGIT ZERO
0x31 0x0031 # DIGIT ONE
0x32 0x0032 # DIGIT TWO
0x33 0x0033 # DIGIT THREE
0x34 0x0034 # DIGIT FOUR
0x35 0x0035 # DIGIT FIVE
0x36 0x0036 # DIGIT SIX
0x37 0x0037 # DIGIT SEVEN
0x38 0x0038 # DIGIT EIGHT
0x39 0x0039 # DIGIT NINE
0x3A 0x003A # COLON
0x3B 0x003B # SEMICOLON
0x3C 0x003C # LESS-THAN SIGN
0x3D 0x003D # EQUALS SIGN
0x3E 0x003E # GREATER-THAN SIGN
0x3F 0x003F # QUESTION MARK
0x40 0x0040 # COMMERCIAL AT
0x41 0x0041 # LATIN CAPITAL LETTER A
0x42 0x0042 # LATIN CAPITAL LETTER B
0x43 0x0043 # LATIN CAPITAL LETTER C
0x44 0x0044 # LATIN CAPITAL LETTER D
0x45 0x0045 # LATIN CAPITAL LETTER E
0x46 0x0046 # LATIN CAPITAL LETTER F
0x47 0x0047 # LATIN CAPITAL LETTER G
0x48 0x0048 # LATIN CAPITAL LETTER H
0x49 0x0049 # LATIN CAPITAL LETTER I
0x4A 0x004A # LATIN CAPITAL LETTER J
0x4B 0x004B # LATIN CAPITAL LETTER K
0x4C 0x004C # LATIN CAPITAL LETTER L
0x4D 0x004D # LATIN CAPITAL LETTER M
0x4E 0x004E # LATIN CAPITAL LETTER N
0x4F 0x004F # LATIN CAPITAL LETTER O
0x50 0x0050 # LATIN CAPITAL LETTER P
0x51 0x0051 # LATIN CAPITAL LETTER Q
0x52 0x0052 # LATIN CAPITAL LETTER R
0x53 0x0053 # LATIN CAPITAL LETTER S
0x54 0x0054 # LATIN CAPITAL LETTER T
0x55 0x0055 # LATIN CAPITAL LETTER U
0x56 0x0056 # LATIN CAPITAL LETTER V
0x57 0x0057 # LATIN CAPITAL LETTER W
0x58 0x0058 # LATIN CAPITAL LETTER X
0x59 0x0059 # LATIN CAPITAL LETTER Y
0x5A 0x005A # LATIN CAPITAL LETTER Z
0x5B 0x005B # LEFT SQUARE BRACKET
0x5C 0x005C # REVERSE SOLIDUS
0x5D 0x005D # RIGHT SQUARE BRACKET
0x5E 0x005E # CIRCUMFLEX ACCENT
0x5F 0x005F # LOW LINE
0x60 0x0060 # GRAVE ACCENT
0x61 0x0061 # LATIN SMALL LETTER A
0x62 0x0062 # LATIN SMALL LETTER B
0x63 0x0063 # LATIN SMALL LETTER C
0x64 0x0064 # LATIN SMALL LETTER D
0x65 0x0065 # LATIN SMALL LETTER E
0x66 0x0066 # LATIN SMALL LETTER F
0x67 0x0067 # LATIN SMALL LETTER G
0x68 0x0068 # LATIN SMALL LETTER H
0x69 0x0069 # LATIN SMALL LETTER I
0x6A 0x006A # LATIN SMALL LETTER J
0x6B 0x006B # LATIN SMALL LETTER K
0x6C 0x006C # LATIN SMALL LETTER L
0x6D 0x006D # LATIN SMALL LETTER M
0x6E 0x006E # LATIN SMALL LETTER N
0x6F 0x006F # LATIN SMALL LETTER O
0x70 0x0070 # LATIN SMALL LETTER P
0x71 0x0071 # LATIN SMALL LETTER Q
0x72 0x0072 # LATIN SMALL LETTER R
0x73 0x0073 # LATIN SMALL LETTER S
0x74 0x0074 # LATIN SMALL LETTER T
0x75 0x0075 # LATIN SMALL LETTER U
0x76 0x0076 # LATIN SMALL LETTER V
0x77 0x0077 # LATIN SMALL LETTER W
0x78 0x0078 # LATIN SMALL LETTER X
0x79 0x0079 # LATIN SMALL LETTER Y
0x7A 0x007A # LATIN SMALL LETTER Z
0x7B 0x007B # LEFT CURLY BRACKET
0x7C 0x007C # VERTICAL LINE
0x7D 0x007D # RIGHT CURLY BRACKET
0x7E 0x007E # TILDE
#
0x80 0x00AB # LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
0x81 0x00BB # RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
0x82 0x2026 # HORIZONTAL ELLIPSIS
0x83 0x0E48+0xF875 # THAI CHARACTER MAI EK, low left position
0x84 0x0E49+0xF875 # THAI CHARACTER MAI THO, low left position
0x85 0x0E4A+0xF875 # THAI CHARACTER MAI TRI, low left position
0x86 0x0E4B+0xF875 # THAI CHARACTER MAI CHATTAWA, low left position
0x87 0x0E4C+0xF875 # THAI CHARACTER THANTHAKHAT, low left position
0x88 0x0E48+0xF873 # THAI CHARACTER MAI EK, low position
0x89 0x0E49+0xF873 # THAI CHARACTER MAI THO, low position
0x8A 0x0E4A+0xF873 # THAI CHARACTER MAI TRI, low position
0x8B 0x0E4B+0xF873 # THAI CHARACTER MAI CHATTAWA, low position
0x8C 0x0E4C+0xF873 # THAI CHARACTER THANTHAKHAT, low position
0x8D 0x201C # LEFT DOUBLE QUOTATION MARK
0x8E 0x201D # RIGHT DOUBLE QUOTATION MARK
0x8F 0x0E4D+0xF874 # THAI CHARACTER NIKHAHIT, left position
#
0x91 0x2022 # BULLET
0x92 0x0E31+0xF874 # THAI CHARACTER MAI HAN-AKAT, left position
0x93 0x0E47+0xF874 # THAI CHARACTER MAITAIKHU, left position
0x94 0x0E34+0xF874 # THAI CHARACTER SARA I, left position
0x95 0x0E35+0xF874 # THAI CHARACTER SARA II, left position
0x96 0x0E36+0xF874 # THAI CHARACTER SARA UE, left position
0x97 0x0E37+0xF874 # THAI CHARACTER SARA UEE, left position
0x98 0x0E48+0xF874 # THAI CHARACTER MAI EK, left position
0x99 0x0E49+0xF874 # THAI CHARACTER MAI THO, left position
0x9A 0x0E4A+0xF874 # THAI CHARACTER MAI TRI, left position
0x9B 0x0E4B+0xF874 # THAI CHARACTER MAI CHATTAWA, left position
0x9C 0x0E4C+0xF874 # THAI CHARACTER THANTHAKHAT, left position
0x9D 0x2018 # LEFT SINGLE QUOTATION MARK
0x9E 0x2019 # RIGHT SINGLE QUOTATION MARK
#
0xA0 0x00A0 # NO-BREAK SPACE
0xA1 0x0E01 # THAI CHARACTER KO KAI
0xA2 0x0E02 # THAI CHARACTER KHO KHAI
0xA3 0x0E03 # THAI CHARACTER KHO KHUAT
0xA4 0x0E04 # THAI CHARACTER KHO KHWAI
0xA5 0x0E05 # THAI CHARACTER KHO KHON
0xA6 0x0E06 # THAI CHARACTER KHO RAKHANG
0xA7 0x0E07 # THAI CHARACTER NGO NGU
0xA8 0x0E08 # THAI CHARACTER CHO CHAN
0xA9 0x0E09 # THAI CHARACTER CHO CHING
0xAA 0x0E0A # THAI CHARACTER CHO CHANG
0xAB 0x0E0B # THAI CHARACTER SO SO
0xAC 0x0E0C # THAI CHARACTER CHO CHOE
0xAD 0x0E0D # THAI CHARACTER YO YING
0xAE 0x0E0E # THAI CHARACTER DO CHADA
0xAF 0x0E0F # THAI CHARACTER TO PATAK
0xB0 0x0E10 # THAI CHARACTER THO THAN
0xB1 0x0E11 # THAI CHARACTER THO NANGMONTHO
0xB2 0x0E12 # THAI CHARACTER THO PHUTHAO
0xB3 0x0E13 # THAI CHARACTER NO NEN
0xB4 0x0E14 # THAI CHARACTER DO DEK
0xB5 0x0E15 # THAI CHARACTER TO TAO
0xB6 0x0E16 # THAI CHARACTER THO THUNG
0xB7 0x0E17 # THAI CHARACTER THO THAHAN
0xB8 0x0E18 # THAI CHARACTER THO THONG
0xB9 0x0E19 # THAI CHARACTER NO NU
0xBA 0x0E1A # THAI CHARACTER BO BAIMAI
0xBB 0x0E1B # THAI CHARACTER PO PLA
0xBC 0x0E1C # THAI CHARACTER PHO PHUNG
0xBD 0x0E1D # THAI CHARACTER FO FA
0xBE 0x0E1E # THAI CHARACTER PHO PHAN
0xBF 0x0E1F # THAI CHARACTER FO FAN
0xC0 0x0E20 # THAI CHARACTER PHO SAMPHAO
0xC1 0x0E21 # THAI CHARACTER MO MA
0xC2 0x0E22 # THAI CHARACTER YO YAK
0xC3 0x0E23 # THAI CHARACTER RO RUA
0xC4 0x0E24 # THAI CHARACTER RU
0xC5 0x0E25 # THAI CHARACTER LO LING
0xC6 0x0E26 # THAI CHARACTER LU
0xC7 0x0E27 # THAI CHARACTER WO WAEN
0xC8 0x0E28 # THAI CHARACTER SO SALA
0xC9 0x0E29 # THAI CHARACTER SO RUSI
0xCA 0x0E2A # THAI CHARACTER SO SUA
0xCB 0x0E2B # THAI CHARACTER HO HIP
0xCC 0x0E2C # THAI CHARACTER LO CHULA
0xCD 0x0E2D # THAI CHARACTER O ANG
0xCE 0x0E2E # THAI CHARACTER HO NOKHUK
0xCF 0x0E2F # THAI CHARACTER PAIYANNOI
0xD0 0x0E30 # THAI CHARACTER SARA A
0xD1 0x0E31 # THAI CHARACTER MAI HAN-AKAT
0xD2 0x0E32 # THAI CHARACTER SARA AA
0xD3 0x0E33 # THAI CHARACTER SARA AM
0xD4 0x0E34 # THAI CHARACTER SARA I
0xD5 0x0E35 # THAI CHARACTER SARA II
0xD6 0x0E36 # THAI CHARACTER SARA UE
0xD7 0x0E37 # THAI CHARACTER SARA UEE
0xD8 0x0E38 # THAI CHARACTER SARA U
0xD9 0x0E39 # THAI CHARACTER SARA UU
0xDA 0x0E3A # THAI CHARACTER PHINTHU
0xDB 0x2060 # WORD JOINER # for Unicode 3.2 and later
0xDC 0x200B # ZERO WIDTH SPACE
0xDD 0x2013 # EN DASH
0xDE 0x2014 # EM DASH
0xDF 0x0E3F # THAI CURRENCY SYMBOL BAHT
0xE0 0x0E40 # THAI CHARACTER SARA E
0xE1 0x0E41 # THAI CHARACTER SARA AE
0xE2 0x0E42 # THAI CHARACTER SARA O
0xE3 0x0E43 # THAI CHARACTER SARA AI MAIMUAN
0xE4 0x0E44 # THAI CHARACTER SARA AI MAIMALAI
0xE5 0x0E45 # THAI CHARACTER LAKKHANGYAO
0xE6 0x0E46 # THAI CHARACTER MAIYAMOK
0xE7 0x0E47 # THAI CHARACTER MAITAIKHU
0xE8 0x0E48 # THAI CHARACTER MAI EK
0xE9 0x0E49 # THAI CHARACTER MAI THO
0xEA 0x0E4A # THAI CHARACTER MAI TRI
0xEB 0x0E4B # THAI CHARACTER MAI CHATTAWA
0xEC 0x0E4C # THAI CHARACTER THANTHAKHAT
0xED 0x0E4D # THAI CHARACTER NIKHAHIT
0xEE 0x2122 # TRADE MARK SIGN
0xEF 0x0E4F # THAI CHARACTER FONGMAN
0xF0 0x0E50 # THAI DIGIT ZERO
0xF1 0x0E51 # THAI DIGIT ONE
0xF2 0x0E52 # THAI DIGIT TWO
0xF3 0x0E53 # THAI DIGIT THREE
0xF4 0x0E54 # THAI DIGIT FOUR
0xF5 0x0E55 # THAI DIGIT FIVE
0xF6 0x0E56 # THAI DIGIT SIX
0xF7 0x0E57 # THAI DIGIT SEVEN
0xF8 0x0E58 # THAI DIGIT EIGHT
0xF9 0x0E59 # THAI DIGIT NINE
0xFA 0x00AE # REGISTERED SIGN
0xFB 0x00A9 # COPYRIGHT SIGN
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Dotgnu-pnet-commits] CVS: pnetlib/I18N/Other CP10007.cs, NONE, 1.1 CP10017.cs, NONE, 1.1 CP10021.cs, NONE, 1.1 mac-10007.ucm, NONE, 1.1 mac-10021.ucm, NONE, 1.1,
Rhys Weatherley <address@hidden> <=
- Prev by Date:
[Dotgnu-pnet-commits] CVS: pnetlib/I18N/MidEast CP10004.cs, NONE, 1.1 CP10005.cs, NONE, 1.1 CP10081.cs, NONE, 1.1 mac-10004.ucm, NONE, 1.1 mac-10005.ucm, NONE, 1.1 mac-10081.ucm, NONE, 1.1
- Next by Date:
[Dotgnu-pnet-commits] CVS: pnetlib/I18N/Common UCS4Encoding.cs, NONE, 1.1
- Previous by thread:
[Dotgnu-pnet-commits] CVS: pnetlib/I18N/MidEast CP10004.cs, NONE, 1.1 CP10005.cs, NONE, 1.1 CP10081.cs, NONE, 1.1 mac-10004.ucm, NONE, 1.1 mac-10005.ucm, NONE, 1.1 mac-10081.ucm, NONE, 1.1
- Next by thread:
[Dotgnu-pnet-commits] CVS: pnetlib/I18N/Common UCS4Encoding.cs, NONE, 1.1
- Index(es):