mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-04-30 23:23:39 +02:00
6658 lines
194 KiB
ObjectPascal
6658 lines
194 KiB
ObjectPascal
{
|
|
*****************************************************************************
|
|
* *
|
|
* This file is part of the Lazarus Component Library (LCL) *
|
|
* *
|
|
* See the file COPYING.modifiedLGPL.txt, included in this distribution, *
|
|
* for details about the copyright. *
|
|
* *
|
|
* 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. *
|
|
* *
|
|
*****************************************************************************
|
|
}
|
|
unit LConvEncoding;
|
|
|
|
{$mode objfpc}{$H+}
|
|
|
|
interface
|
|
|
|
{ $Define DisableAsianCodePages}
|
|
|
|
uses
|
|
SysUtils, Classes, dos, LazUTF8
|
|
{$IFDEF EnableIconvEnc},iconvenc{$ENDIF};
|
|
const
|
|
EncodingUTF8 = 'utf8';
|
|
EncodingAnsi = 'ansi';
|
|
EncodingUTF8BOM = 'utf8bom'; // UTF-8 with byte order mark
|
|
EncodingUCS2LE = 'ucs2le'; // UCS 2 byte little endian
|
|
EncodingUCS2BE = 'ucs2be'; // UCS 2 byte big endian
|
|
UTF8BOM = #$EF#$BB#$BF;
|
|
UTF16BEBOM = #$FE#$FF;
|
|
UTF16LEBOM = #$FF#$FE;
|
|
UTF32BEBOM = #0#0#$FE#$FF;
|
|
UTF32LEBOM = #$FE#$FF#0#0;
|
|
|
|
function GuessEncoding(const s: string): string;
|
|
|
|
function ConvertEncoding(const s, FromEncoding, ToEncoding: string): string;
|
|
|
|
// This routine should obtain the encoding utilized by ansistring in the RTL
|
|
function GetDefaultTextEncoding: string;
|
|
// This routine returns the console text encoding, which might be different
|
|
// from the normal system encoding in some Windows systems
|
|
// see http://mantis.freepascal.org/view.php?id=20552
|
|
function GetConsoleTextEncoding: string;
|
|
function NormalizeEncoding(const Encoding: string): string;
|
|
|
|
type
|
|
TConvertEncodingFunction = function(const s: string): string;
|
|
TCharToUTF8Table = array[char] of PChar;
|
|
TUnicodeToCharID = function(Unicode: cardinal): integer;
|
|
var
|
|
ConvertAnsiToUTF8: TConvertEncodingFunction = nil;
|
|
ConvertUTF8ToAnsi: TConvertEncodingFunction = nil;
|
|
|
|
function UTF8BOMToUTF8(const s: string): string; // UTF8 with BOM
|
|
function ISO_8859_1ToUTF8(const s: string): string; // central europe
|
|
function ISO_8859_2ToUTF8(const s: string): string; // eastern europe
|
|
function CP1250ToUTF8(const s: string): string; // central europe
|
|
function CP1251ToUTF8(const s: string): string; // cyrillic
|
|
function CP1252ToUTF8(const s: string): string; // latin 1
|
|
function CP1253ToUTF8(const s: string): string; // greek
|
|
function CP1254ToUTF8(const s: string): string; // turkish
|
|
function CP1255ToUTF8(const s: string): string; // hebrew
|
|
function CP1256ToUTF8(const s: string): string; // arabic
|
|
function CP1257ToUTF8(const s: string): string; // baltic
|
|
function CP1258ToUTF8(const s: string): string; // vietnam
|
|
function CP437ToUTF8(const s: string): string; // DOS central europe
|
|
function CP850ToUTF8(const s: string): string; // DOS western europe
|
|
function CP852ToUTF8(const s: string): string; // DOS central europe
|
|
function CP866ToUTF8(const s: string): string; // DOS and Windows console's cyrillic
|
|
function CP874ToUTF8(const s: string): string; // thai
|
|
function KOI8ToUTF8(const s: string): string; // russian cyrillic
|
|
function SingleByteToUTF8(const s: string;
|
|
const Table: TCharToUTF8Table): string;
|
|
function UCS2LEToUTF8(const s: string): string; // UCS2-LE 2byte little endian
|
|
function UCS2BEToUTF8(const s: string): string; // UCS2-BE 2byte big endian
|
|
|
|
function UTF8ToUTF8BOM(const s: string): string; // UTF8 with BOM
|
|
function UTF8ToISO_8859_1(const s: string): string; // central europe
|
|
function UTF8ToISO_8859_2(const s: string): string; // eastern europe
|
|
function UTF8ToCP1250(const s: string): string; // central europe
|
|
function UTF8ToCP1251(const s: string): string; // cyrillic
|
|
function UTF8ToCP1252(const s: string): string; // latin 1
|
|
function UTF8ToCP1253(const s: string): string; // greek
|
|
function UTF8ToCP1254(const s: string): string; // turkish
|
|
function UTF8ToCP1255(const s: string): string; // hebrew
|
|
function UTF8ToCP1256(const s: string): string; // arabic
|
|
function UTF8ToCP1257(const s: string): string; // baltic
|
|
function UTF8ToCP1258(const s: string): string; // vietnam
|
|
function UTF8ToCP437(const s: string): string; // DOS central europe
|
|
function UTF8ToCP850(const s: string): string; // DOS western europe
|
|
function UTF8ToCP852(const s: string): string; // DOS central europe
|
|
function UTF8ToCP866(const s: string): string; // DOS and Windows console's cyrillic
|
|
function UTF8ToCP874(const s: string): string; // thai
|
|
function UTF8ToKOI8(const s: string): string; // russian cyrillic
|
|
function UTF8ToSingleByte(const s: string;
|
|
const UTF8CharConvFunc: TUnicodeToCharID): string;
|
|
function UTF8ToUCS2LE(const s: string): string; // UCS2-LE 2byte little endian without BOM
|
|
function UTF8ToUCS2BE(const s: string): string; // UCS2-BE 2byte big endian without BOM
|
|
|
|
{$IFNDEF DisableAsianCodePages}
|
|
// Asian encodings
|
|
function CP932ToUTF8(const s: string): string; // Japanese
|
|
function CP936ToUTF8(const s: string): string; // Chinese
|
|
function CP949ToUTF8(const s: string): string; // Korea
|
|
function CP950ToUTF8(const s: string): string; // Chinese Complex
|
|
|
|
function DBCSToUTF8(const s: string; CodeP: integer): string;
|
|
|
|
function UTF8ToCP932(const s: string): string; // Japanese
|
|
function UTF8ToCP936(const s: string): string; // Chinese, essentially the same as GB 2312 and a predecessor to GB 18030
|
|
function UTF8ToCP949(const s: string): string; // Korea
|
|
function UTF8ToCP950(const s: string): string; // Chinese Complex
|
|
|
|
function UTF8ToDBCS(const s: string;
|
|
const UTF8CharConvFunc: TUnicodeToCharID): string;
|
|
{$ENDIF}
|
|
|
|
procedure GetSupportedEncodings(List: TStrings);
|
|
|
|
implementation
|
|
|
|
{$IFDEF Windows}
|
|
uses Windows;
|
|
{$ENDIF}
|
|
|
|
var EncodingValid: boolean = false;
|
|
DefaultTextEncoding: string = EncodingAnsi;
|
|
|
|
{$IFNDEF DisableAsianCodePages}
|
|
{$include asiancodepages.inc}
|
|
{$include asiancodepagefunctions.inc}
|
|
{$ENDIF}
|
|
|
|
{$IFDEF Windows}
|
|
// AConsole - If false, it is the general system encoding,
|
|
// if true, it is the console encoding
|
|
function GetWindowsEncoding(AConsole: Boolean = False): string;
|
|
var
|
|
cp : UINT;
|
|
{$IFDEF WinCE}
|
|
// CP_UTF8 is missing in the windows unit of the Windows CE RTL
|
|
const
|
|
CP_UTF8 = 65001;
|
|
{$ENDIF}
|
|
begin
|
|
if AConsole then cp := GetOEMCP
|
|
else cp := GetACP;
|
|
|
|
case cp of
|
|
CP_UTF8: Result := EncodingUTF8;
|
|
else
|
|
Result:='cp'+IntToStr(cp);
|
|
end;
|
|
end;
|
|
{$ELSE}
|
|
{$IFNDEF Darwin}
|
|
function GetUnixEncoding:string;
|
|
var
|
|
Lang: string;
|
|
i: integer;
|
|
begin
|
|
Result:=EncodingAnsi;
|
|
|
|
lang := GetEnv('LC_ALL');
|
|
if Length(lang) = 0 then
|
|
begin
|
|
lang := GetEnv('LC_MESSAGES');
|
|
if Length(lang) = 0 then
|
|
begin
|
|
lang := GetEnv('LANG');
|
|
end;
|
|
end;
|
|
i:=pos('.',Lang);
|
|
if (i>0) and (i<=length(Lang)) then
|
|
Result:=copy(Lang,i+1,length(Lang)-i);
|
|
end;
|
|
{$ENDIF}
|
|
{$ENDIF}
|
|
|
|
function GetDefaultTextEncoding: string;
|
|
begin
|
|
if EncodingValid then begin
|
|
Result:=DefaultTextEncoding;
|
|
exit;
|
|
end;
|
|
|
|
{$IFDEF Windows}
|
|
Result:=GetWindowsEncoding;
|
|
{$ELSE}
|
|
{$IFDEF Darwin}
|
|
Result:=EncodingUTF8;
|
|
{$ELSE}
|
|
Result:=GetUnixEncoding;
|
|
{$ENDIF}
|
|
{$ENDIF}
|
|
|
|
Result:=NormalizeEncoding(Result);
|
|
|
|
DefaultTextEncoding:=Result;
|
|
EncodingValid:=true;
|
|
end;
|
|
|
|
function GetConsoleTextEncoding: string;
|
|
begin
|
|
{$ifdef Windows}
|
|
Result:=GetWindowsEncoding(True);
|
|
Result:=NormalizeEncoding(Result);
|
|
{$else}
|
|
Result := GetDefaultTextEncoding;
|
|
{$endif}
|
|
end;
|
|
|
|
function NormalizeEncoding(const Encoding: string): string;
|
|
var
|
|
i: Integer;
|
|
begin
|
|
Result:=LowerCase(Encoding);
|
|
for i:=length(Result) downto 1 do
|
|
if Result[i]='-' then System.Delete(Result,i,1);
|
|
end;
|
|
|
|
const
|
|
ArrayISO_8859_1ToUTF8: TCharToUTF8Table = (
|
|
#0, // #0
|
|
#1, // #1
|
|
#2, // #2
|
|
#3, // #3
|
|
#4, // #4
|
|
#5, // #5
|
|
#6, // #6
|
|
#7, // #7
|
|
#8, // #8
|
|
#9, // #9
|
|
#10, // #10
|
|
#11, // #11
|
|
#12, // #12
|
|
#13, // #13
|
|
#14, // #14
|
|
#15, // #15
|
|
#16, // #16
|
|
#17, // #17
|
|
#18, // #18
|
|
#19, // #19
|
|
#20, // #20
|
|
#21, // #21
|
|
#22, // #22
|
|
#23, // #23
|
|
#24, // #24
|
|
#25, // #25
|
|
#26, // #26
|
|
#27, // #27
|
|
#28, // #28
|
|
#29, // #29
|
|
#30, // #30
|
|
#31, // #31
|
|
' ', // ' '
|
|
'!', // '!'
|
|
'"', // '"'
|
|
'#', // '#'
|
|
'$', // '$'
|
|
'%', // '%'
|
|
'&', // '&'
|
|
'''', // ''''
|
|
'(', // '('
|
|
')', // ')'
|
|
'*', // '*'
|
|
'+', // '+'
|
|
',', // ','
|
|
'-', // '-'
|
|
'.', // '.'
|
|
'/', // '/'
|
|
'0', // '0'
|
|
'1', // '1'
|
|
'2', // '2'
|
|
'3', // '3'
|
|
'4', // '4'
|
|
'5', // '5'
|
|
'6', // '6'
|
|
'7', // '7'
|
|
'8', // '8'
|
|
'9', // '9'
|
|
':', // ':'
|
|
';', // ';'
|
|
'<', // '<'
|
|
'=', // '='
|
|
'>', // '>'
|
|
'?', // '?'
|
|
'@', // '@'
|
|
'A', // 'A'
|
|
'B', // 'B'
|
|
'C', // 'C'
|
|
'D', // 'D'
|
|
'E', // 'E'
|
|
'F', // 'F'
|
|
'G', // 'G'
|
|
'H', // 'H'
|
|
'I', // 'I'
|
|
'J', // 'J'
|
|
'K', // 'K'
|
|
'L', // 'L'
|
|
'M', // 'M'
|
|
'N', // 'N'
|
|
'O', // 'O'
|
|
'P', // 'P'
|
|
'Q', // 'Q'
|
|
'R', // 'R'
|
|
'S', // 'S'
|
|
'T', // 'T'
|
|
'U', // 'U'
|
|
'V', // 'V'
|
|
'W', // 'W'
|
|
'X', // 'X'
|
|
'Y', // 'Y'
|
|
'Z', // 'Z'
|
|
'[', // '['
|
|
'\', // '\'
|
|
']', // ']'
|
|
'^', // '^'
|
|
'_', // '_'
|
|
'`', // '`'
|
|
'a', // 'a'
|
|
'b', // 'b'
|
|
'c', // 'c'
|
|
'd', // 'd'
|
|
'e', // 'e'
|
|
'f', // 'f'
|
|
'g', // 'g'
|
|
'h', // 'h'
|
|
'i', // 'i'
|
|
'j', // 'j'
|
|
'k', // 'k'
|
|
'l', // 'l'
|
|
'm', // 'm'
|
|
'n', // 'n'
|
|
'o', // 'o'
|
|
'p', // 'p'
|
|
'q', // 'q'
|
|
'r', // 'r'
|
|
's', // 's'
|
|
't', // 't'
|
|
'u', // 'u'
|
|
'v', // 'v'
|
|
'w', // 'w'
|
|
'x', // 'x'
|
|
'y', // 'y'
|
|
'z', // 'z'
|
|
'{', // '{'
|
|
'|', // '|'
|
|
'}', // '}'
|
|
'~', // '~'
|
|
#127, // #127
|
|
#194#128, // #128
|
|
#194#129, // #129
|
|
#194#130, // #130
|
|
#194#131, // #131
|
|
#194#132, // #132
|
|
#194#133, // #133
|
|
#194#134, // #134
|
|
#194#135, // #135
|
|
#194#136, // #136
|
|
#194#137, // #137
|
|
#194#138, // #138
|
|
#194#139, // #139
|
|
#194#140, // #140
|
|
#194#141, // #141
|
|
#194#142, // #142
|
|
#194#143, // #143
|
|
#194#144, // #144
|
|
#194#145, // #145
|
|
#194#146, // #146
|
|
#194#147, // #147
|
|
#194#148, // #148
|
|
#194#149, // #149
|
|
#194#150, // #150
|
|
#194#151, // #151
|
|
#194#152, // #152
|
|
#194#153, // #153
|
|
#194#154, // #154
|
|
#194#155, // #155
|
|
#194#156, // #156
|
|
#194#157, // #157
|
|
#194#158, // #158
|
|
#194#159, // #159
|
|
#194#160, // #160
|
|
#194#161, // #161
|
|
#194#162, // #162
|
|
#194#163, // #163
|
|
#194#164, // #164
|
|
#194#165, // #165
|
|
#194#166, // #166
|
|
#194#167, // #167
|
|
#194#168, // #168
|
|
#194#169, // #169
|
|
#194#170, // #170
|
|
#194#171, // #171
|
|
#194#172, // #172
|
|
#194#173, // #173
|
|
#194#174, // #174
|
|
#194#175, // #175
|
|
#194#176, // #176
|
|
#194#177, // #177
|
|
#194#178, // #178
|
|
#194#179, // #179
|
|
#194#180, // #180
|
|
#194#181, // #181
|
|
#194#182, // #182
|
|
#194#183, // #183
|
|
#194#184, // #184
|
|
#194#185, // #185
|
|
#194#186, // #186
|
|
#194#187, // #187
|
|
#194#188, // #188
|
|
#194#189, // #189
|
|
#194#190, // #190
|
|
#194#191, // #191
|
|
#195#128, // #192
|
|
#195#129, // #193
|
|
#195#130, // #194
|
|
#195#131, // #195
|
|
#195#132, // #196
|
|
#195#133, // #197
|
|
#195#134, // #198
|
|
#195#135, // #199
|
|
#195#136, // #200
|
|
#195#137, // #201
|
|
#195#138, // #202
|
|
#195#139, // #203
|
|
#195#140, // #204
|
|
#195#141, // #205
|
|
#195#142, // #206
|
|
#195#143, // #207
|
|
#195#144, // #208
|
|
#195#145, // #209
|
|
#195#146, // #210
|
|
#195#147, // #211
|
|
#195#148, // #212
|
|
#195#149, // #213
|
|
#195#150, // #214
|
|
#195#151, // #215
|
|
#195#152, // #216
|
|
#195#153, // #217
|
|
#195#154, // #218
|
|
#195#155, // #219
|
|
#195#156, // #220
|
|
#195#157, // #221
|
|
#195#158, // #222
|
|
#195#159, // #223
|
|
#195#160, // #224
|
|
#195#161, // #225
|
|
#195#162, // #226
|
|
#195#163, // #227
|
|
#195#164, // #228
|
|
#195#165, // #229
|
|
#195#166, // #230
|
|
#195#167, // #231
|
|
#195#168, // #232
|
|
#195#169, // #233
|
|
#195#170, // #234
|
|
#195#171, // #235
|
|
#195#172, // #236
|
|
#195#173, // #237
|
|
#195#174, // #238
|
|
#195#175, // #239
|
|
#195#176, // #240
|
|
#195#177, // #241
|
|
#195#178, // #242
|
|
#195#179, // #243
|
|
#195#180, // #244
|
|
#195#181, // #245
|
|
#195#182, // #246
|
|
#195#183, // #247
|
|
#195#184, // #248
|
|
#195#185, // #249
|
|
#195#186, // #250
|
|
#195#187, // #251
|
|
#195#188, // #252
|
|
#195#189, // #253
|
|
#195#190, // #254
|
|
#195#191 // #255
|
|
);
|
|
|
|
ArrayISO_8859_2ToUTF8: TCharToUTF8Table = (
|
|
#0, // #0
|
|
#1, // #1
|
|
#2, // #2
|
|
#3, // #3
|
|
#4, // #4
|
|
#5, // #5
|
|
#6, // #6
|
|
#7, // #7
|
|
#8, // #8
|
|
#9, // #9
|
|
#10, // #10
|
|
#11, // #11
|
|
#12, // #12
|
|
#13, // #13
|
|
#14, // #14
|
|
#15, // #15
|
|
#16, // #16
|
|
#17, // #17
|
|
#18, // #18
|
|
#19, // #19
|
|
#20, // #20
|
|
#21, // #21
|
|
#22, // #22
|
|
#23, // #23
|
|
#24, // #24
|
|
#25, // #25
|
|
#26, // #26
|
|
#27, // #27
|
|
#28, // #28
|
|
#29, // #29
|
|
#30, // #30
|
|
#31, // #31
|
|
' ', // ' '
|
|
'!', // '!'
|
|
'"', // '"'
|
|
'#', // '#'
|
|
'$', // '$'
|
|
'%', // '%'
|
|
'&', // '&'
|
|
'''', // ''''
|
|
'(', // '('
|
|
')', // ')'
|
|
'*', // '*'
|
|
'+', // '+'
|
|
',', // ','
|
|
'-', // '-'
|
|
'.', // '.'
|
|
'/', // '/'
|
|
'0', // '0'
|
|
'1', // '1'
|
|
'2', // '2'
|
|
'3', // '3'
|
|
'4', // '4'
|
|
'5', // '5'
|
|
'6', // '6'
|
|
'7', // '7'
|
|
'8', // '8'
|
|
'9', // '9'
|
|
':', // ':'
|
|
';', // ';'
|
|
'<', // '<'
|
|
'=', // '='
|
|
'>', // '>'
|
|
'?', // '?'
|
|
'@', // '@'
|
|
'A', // 'A'
|
|
'B', // 'B'
|
|
'C', // 'C'
|
|
'D', // 'D'
|
|
'E', // 'E'
|
|
'F', // 'F'
|
|
'G', // 'G'
|
|
'H', // 'H'
|
|
'I', // 'I'
|
|
'J', // 'J'
|
|
'K', // 'K'
|
|
'L', // 'L'
|
|
'M', // 'M'
|
|
'N', // 'N'
|
|
'O', // 'O'
|
|
'P', // 'P'
|
|
'Q', // 'Q'
|
|
'R', // 'R'
|
|
'S', // 'S'
|
|
'T', // 'T'
|
|
'U', // 'U'
|
|
'V', // 'V'
|
|
'W', // 'W'
|
|
'X', // 'X'
|
|
'Y', // 'Y'
|
|
'Z', // 'Z'
|
|
'[', // '['
|
|
'\', // '\'
|
|
']', // ']'
|
|
'^', // '^'
|
|
'_', // '_'
|
|
'`', // '`'
|
|
'a', // 'a'
|
|
'b', // 'b'
|
|
'c', // 'c'
|
|
'd', // 'd'
|
|
'e', // 'e'
|
|
'f', // 'f'
|
|
'g', // 'g'
|
|
'h', // 'h'
|
|
'i', // 'i'
|
|
'j', // 'j'
|
|
'k', // 'k'
|
|
'l', // 'l'
|
|
'm', // 'm'
|
|
'n', // 'n'
|
|
'o', // 'o'
|
|
'p', // 'p'
|
|
'q', // 'q'
|
|
'r', // 'r'
|
|
's', // 's'
|
|
't', // 't'
|
|
'u', // 'u'
|
|
'v', // 'v'
|
|
'w', // 'w'
|
|
'x', // 'x'
|
|
'y', // 'y'
|
|
'z', // 'z'
|
|
'{', // '{'
|
|
'|', // '|'
|
|
'}', // '}'
|
|
'~', // '~'
|
|
#127, // #127
|
|
#194#128, // #128
|
|
#194#129, // #129
|
|
#194#130, // #130
|
|
#194#131, // #131
|
|
#194#132, // #132
|
|
#194#133, // #133
|
|
#194#134, // #134
|
|
#194#135, // #135
|
|
#194#136, // #136
|
|
#194#137, // #137
|
|
#194#138, // #138
|
|
#194#139, // #139
|
|
#194#140, // #140
|
|
#194#141, // #141
|
|
#194#142, // #142
|
|
#194#143, // #143
|
|
#194#144, // #144
|
|
#194#145, // #145
|
|
#194#146, // #146
|
|
#194#147, // #147
|
|
#194#148, // #148
|
|
#194#149, // #149
|
|
#194#150, // #150
|
|
#194#151, // #151
|
|
#194#152, // #152
|
|
#194#153, // #153
|
|
#194#154, // #154
|
|
#194#155, // #155
|
|
#194#156, // #156
|
|
#194#157, // #157
|
|
#194#158, // #158
|
|
#194#159, // #159
|
|
#194#160, // #160
|
|
#196#132, // #161
|
|
#203#152, // #162
|
|
#197#129, // #163
|
|
#194#164, // #164
|
|
#196#189, // #165
|
|
#197#154, // #166
|
|
#194#167, // #167
|
|
#194#168, // #168
|
|
#197#160, // #169
|
|
#197#158, // #170
|
|
#197#164, // #171
|
|
#197#185, // #172
|
|
#194#173, // #173
|
|
#197#189, // #174
|
|
#197#187, // #175
|
|
#194#176, // #176
|
|
#196#133, // #177
|
|
#203#155, // #178
|
|
#197#130, // #179
|
|
#194#180, // #180
|
|
#196#190, // #181
|
|
#197#155, // #182
|
|
#203#135, // #183
|
|
#194#184, // #184
|
|
#197#161, // #185
|
|
#197#159, // #186
|
|
#197#165, // #187
|
|
#197#186, // #188
|
|
#203#157, // #189
|
|
#197#190, // #190
|
|
#197#188, // #191
|
|
#197#148, // #192
|
|
#195#129, // #193
|
|
#195#130, // #194
|
|
#196#130, // #195
|
|
#195#132, // #196
|
|
#196#185, // #197
|
|
#196#134, // #198
|
|
#195#135, // #199
|
|
#196#140, // #200
|
|
#195#137, // #201
|
|
#196#152, // #202
|
|
#195#139, // #203
|
|
#196#154, // #204
|
|
#195#141, // #205
|
|
#195#142, // #206
|
|
#196#142, // #207
|
|
#196#144, // #208
|
|
#197#131, // #209
|
|
#197#135, // #210
|
|
#195#147, // #211
|
|
#195#148, // #212
|
|
#197#144, // #213
|
|
#195#150, // #214
|
|
#195#151, // #215
|
|
#197#152, // #216
|
|
#197#174, // #217
|
|
#195#154, // #218
|
|
#197#176, // #219
|
|
#195#156, // #220
|
|
#195#157, // #221
|
|
#197#162, // #222
|
|
#195#159, // #223
|
|
#197#149, // #224
|
|
#195#161, // #225
|
|
#195#162, // #226
|
|
#196#131, // #227
|
|
#195#164, // #228
|
|
#196#186, // #229
|
|
#196#135, // #230
|
|
#195#167, // #231
|
|
#196#141, // #232
|
|
#195#169, // #233
|
|
#196#153, // #234
|
|
#195#171, // #235
|
|
#196#155, // #236
|
|
#195#173, // #237
|
|
#195#174, // #238
|
|
#196#143, // #239
|
|
#196#145, // #240
|
|
#197#132, // #241
|
|
#197#136, // #242
|
|
#195#179, // #243
|
|
#195#180, // #244
|
|
#197#145, // #245
|
|
#195#182, // #246
|
|
#195#183, // #247
|
|
#197#153, // #248
|
|
#197#175, // #249
|
|
#195#186, // #250
|
|
#197#177, // #251
|
|
#195#188, // #252
|
|
#195#189, // #253
|
|
#197#163, // #254
|
|
#203#153 // #255
|
|
);
|
|
|
|
|
|
ArrayCP1250ToUTF8: TCharToUTF8Table = (
|
|
#0, // #0
|
|
#1, // #1
|
|
#2, // #2
|
|
#3, // #3
|
|
#4, // #4
|
|
#5, // #5
|
|
#6, // #6
|
|
#7, // #7
|
|
#8, // #8
|
|
#9, // #9
|
|
#10, // #10
|
|
#11, // #11
|
|
#12, // #12
|
|
#13, // #13
|
|
#14, // #14
|
|
#15, // #15
|
|
#16, // #16
|
|
#17, // #17
|
|
#18, // #18
|
|
#19, // #19
|
|
#20, // #20
|
|
#21, // #21
|
|
#22, // #22
|
|
#23, // #23
|
|
#24, // #24
|
|
#25, // #25
|
|
#26, // #26
|
|
#27, // #27
|
|
#28, // #28
|
|
#29, // #29
|
|
#30, // #30
|
|
#31, // #31
|
|
' ', // ' '
|
|
'!', // '!'
|
|
'"', // '"'
|
|
'#', // '#'
|
|
'$', // '$'
|
|
'%', // '%'
|
|
'&', // '&'
|
|
'''', // ''''
|
|
'(', // '('
|
|
')', // ')'
|
|
'*', // '*'
|
|
'+', // '+'
|
|
',', // ','
|
|
'-', // '-'
|
|
'.', // '.'
|
|
'/', // '/'
|
|
'0', // '0'
|
|
'1', // '1'
|
|
'2', // '2'
|
|
'3', // '3'
|
|
'4', // '4'
|
|
'5', // '5'
|
|
'6', // '6'
|
|
'7', // '7'
|
|
'8', // '8'
|
|
'9', // '9'
|
|
':', // ':'
|
|
';', // ';'
|
|
'<', // '<'
|
|
'=', // '='
|
|
'>', // '>'
|
|
'?', // '?'
|
|
'@', // '@'
|
|
'A', // 'A'
|
|
'B', // 'B'
|
|
'C', // 'C'
|
|
'D', // 'D'
|
|
'E', // 'E'
|
|
'F', // 'F'
|
|
'G', // 'G'
|
|
'H', // 'H'
|
|
'I', // 'I'
|
|
'J', // 'J'
|
|
'K', // 'K'
|
|
'L', // 'L'
|
|
'M', // 'M'
|
|
'N', // 'N'
|
|
'O', // 'O'
|
|
'P', // 'P'
|
|
'Q', // 'Q'
|
|
'R', // 'R'
|
|
'S', // 'S'
|
|
'T', // 'T'
|
|
'U', // 'U'
|
|
'V', // 'V'
|
|
'W', // 'W'
|
|
'X', // 'X'
|
|
'Y', // 'Y'
|
|
'Z', // 'Z'
|
|
'[', // '['
|
|
'\', // '\'
|
|
']', // ']'
|
|
'^', // '^'
|
|
'_', // '_'
|
|
'`', // '`'
|
|
'a', // 'a'
|
|
'b', // 'b'
|
|
'c', // 'c'
|
|
'd', // 'd'
|
|
'e', // 'e'
|
|
'f', // 'f'
|
|
'g', // 'g'
|
|
'h', // 'h'
|
|
'i', // 'i'
|
|
'j', // 'j'
|
|
'k', // 'k'
|
|
'l', // 'l'
|
|
'm', // 'm'
|
|
'n', // 'n'
|
|
'o', // 'o'
|
|
'p', // 'p'
|
|
'q', // 'q'
|
|
'r', // 'r'
|
|
's', // 's'
|
|
't', // 't'
|
|
'u', // 'u'
|
|
'v', // 'v'
|
|
'w', // 'w'
|
|
'x', // 'x'
|
|
'y', // 'y'
|
|
'z', // 'z'
|
|
'{', // '{'
|
|
'|', // '|'
|
|
'}', // '}'
|
|
'~', // '~'
|
|
#127, // #127
|
|
#226#130#172, // #128
|
|
'', // #129
|
|
#226#128#154, // #130
|
|
'', // #131
|
|
#226#128#158, // #132
|
|
#226#128#166, // #133
|
|
#226#128#160, // #134
|
|
#226#128#161, // #135
|
|
'', // #136
|
|
#226#128#176, // #137
|
|
#197#160, // #138
|
|
#226#128#185, // #139
|
|
#197#154, // #140
|
|
#197#164, // #141
|
|
#197#189, // #142
|
|
#197#185, // #143
|
|
'', // #144
|
|
#226#128#152, // #145
|
|
#226#128#153, // #146
|
|
#226#128#156, // #147
|
|
#226#128#157, // #148
|
|
#226#128#162, // #149
|
|
#226#128#147, // #150
|
|
#226#128#148, // #151
|
|
'', // #152
|
|
#226#132#162, // #153
|
|
#197#161, // #154
|
|
#226#128#186, // #155
|
|
#197#155, // #156
|
|
#197#165, // #157
|
|
#197#190, // #158
|
|
#197#186, // #159
|
|
#194#160, // #160
|
|
#203#135, // #161
|
|
#203#152, // #162
|
|
#197#129, // #163
|
|
#194#164, // #164
|
|
#196#132, // #165
|
|
#194#166, // #166
|
|
#194#167, // #167
|
|
#194#168, // #168
|
|
#194#169, // #169
|
|
#197#158, // #170
|
|
#194#171, // #171
|
|
#194#172, // #172
|
|
#194#173, // #173
|
|
#194#174, // #174
|
|
#197#187, // #175
|
|
#194#176, // #176
|
|
#194#177, // #177
|
|
#203#155, // #178
|
|
#197#130, // #179
|
|
#194#180, // #180
|
|
#194#181, // #181
|
|
#194#182, // #182
|
|
#194#183, // #183
|
|
#194#184, // #184
|
|
#196#133, // #185
|
|
#197#159, // #186
|
|
#194#187, // #187
|
|
#196#189, // #188
|
|
#203#157, // #189
|
|
#196#190, // #190
|
|
#197#188, // #191
|
|
#197#148, // #192
|
|
#195#129, // #193
|
|
#195#130, // #194
|
|
#196#130, // #195
|
|
#195#132, // #196
|
|
#196#185, // #197
|
|
#196#134, // #198
|
|
#195#135, // #199
|
|
#196#140, // #200
|
|
#195#137, // #201
|
|
#196#152, // #202
|
|
#195#139, // #203
|
|
#196#154, // #204
|
|
#195#141, // #205
|
|
#195#142, // #206
|
|
#196#142, // #207
|
|
#196#144, // #208
|
|
#197#131, // #209
|
|
#197#135, // #210
|
|
#195#147, // #211
|
|
#195#148, // #212
|
|
#197#144, // #213
|
|
#195#150, // #214
|
|
#195#151, // #215
|
|
#197#152, // #216
|
|
#197#174, // #217
|
|
#195#154, // #218
|
|
#197#176, // #219
|
|
#195#156, // #220
|
|
#195#157, // #221
|
|
#197#162, // #222
|
|
#195#159, // #223
|
|
#197#149, // #224
|
|
#195#161, // #225
|
|
#195#162, // #226
|
|
#196#131, // #227
|
|
#195#164, // #228
|
|
#196#186, // #229
|
|
#196#135, // #230
|
|
#195#167, // #231
|
|
#196#141, // #232
|
|
#195#169, // #233
|
|
#196#153, // #234
|
|
#195#171, // #235
|
|
#196#155, // #236
|
|
#195#173, // #237
|
|
#195#174, // #238
|
|
#196#143, // #239
|
|
#196#145, // #240
|
|
#197#132, // #241
|
|
#197#136, // #242
|
|
#195#179, // #243
|
|
#195#180, // #244
|
|
#197#145, // #245
|
|
#195#182, // #246
|
|
#195#183, // #247
|
|
#197#153, // #248
|
|
#197#175, // #249
|
|
#195#186, // #250
|
|
#197#177, // #251
|
|
#195#188, // #252
|
|
#195#189, // #253
|
|
#197#163, // #254
|
|
#203#153 // #255
|
|
);
|
|
|
|
ArrayCP1251ToUTF8: TCharToUTF8Table = (
|
|
#0, // #0
|
|
#1, // #1
|
|
#2, // #2
|
|
#3, // #3
|
|
#4, // #4
|
|
#5, // #5
|
|
#6, // #6
|
|
#7, // #7
|
|
#8, // #8
|
|
#9, // #9
|
|
#10, // #10
|
|
#11, // #11
|
|
#12, // #12
|
|
#13, // #13
|
|
#14, // #14
|
|
#15, // #15
|
|
#16, // #16
|
|
#17, // #17
|
|
#18, // #18
|
|
#19, // #19
|
|
#20, // #20
|
|
#21, // #21
|
|
#22, // #22
|
|
#23, // #23
|
|
#24, // #24
|
|
#25, // #25
|
|
#26, // #26
|
|
#27, // #27
|
|
#28, // #28
|
|
#29, // #29
|
|
#30, // #30
|
|
#31, // #31
|
|
' ', // ' '
|
|
'!', // '!'
|
|
'"', // '"'
|
|
'#', // '#'
|
|
'$', // '$'
|
|
'%', // '%'
|
|
'&', // '&'
|
|
'''', // ''''
|
|
'(', // '('
|
|
')', // ')'
|
|
'*', // '*'
|
|
'+', // '+'
|
|
',', // ','
|
|
'-', // '-'
|
|
'.', // '.'
|
|
'/', // '/'
|
|
'0', // '0'
|
|
'1', // '1'
|
|
'2', // '2'
|
|
'3', // '3'
|
|
'4', // '4'
|
|
'5', // '5'
|
|
'6', // '6'
|
|
'7', // '7'
|
|
'8', // '8'
|
|
'9', // '9'
|
|
':', // ':'
|
|
';', // ';'
|
|
'<', // '<'
|
|
'=', // '='
|
|
'>', // '>'
|
|
'?', // '?'
|
|
'@', // '@'
|
|
'A', // 'A'
|
|
'B', // 'B'
|
|
'C', // 'C'
|
|
'D', // 'D'
|
|
'E', // 'E'
|
|
'F', // 'F'
|
|
'G', // 'G'
|
|
'H', // 'H'
|
|
'I', // 'I'
|
|
'J', // 'J'
|
|
'K', // 'K'
|
|
'L', // 'L'
|
|
'M', // 'M'
|
|
'N', // 'N'
|
|
'O', // 'O'
|
|
'P', // 'P'
|
|
'Q', // 'Q'
|
|
'R', // 'R'
|
|
'S', // 'S'
|
|
'T', // 'T'
|
|
'U', // 'U'
|
|
'V', // 'V'
|
|
'W', // 'W'
|
|
'X', // 'X'
|
|
'Y', // 'Y'
|
|
'Z', // 'Z'
|
|
'[', // '['
|
|
'\', // '\'
|
|
']', // ']'
|
|
'^', // '^'
|
|
'_', // '_'
|
|
'`', // '`'
|
|
'a', // 'a'
|
|
'b', // 'b'
|
|
'c', // 'c'
|
|
'd', // 'd'
|
|
'e', // 'e'
|
|
'f', // 'f'
|
|
'g', // 'g'
|
|
'h', // 'h'
|
|
'i', // 'i'
|
|
'j', // 'j'
|
|
'k', // 'k'
|
|
'l', // 'l'
|
|
'm', // 'm'
|
|
'n', // 'n'
|
|
'o', // 'o'
|
|
'p', // 'p'
|
|
'q', // 'q'
|
|
'r', // 'r'
|
|
's', // 's'
|
|
't', // 't'
|
|
'u', // 'u'
|
|
'v', // 'v'
|
|
'w', // 'w'
|
|
'x', // 'x'
|
|
'y', // 'y'
|
|
'z', // 'z'
|
|
'{', // '{'
|
|
'|', // '|'
|
|
'}', // '}'
|
|
'~', // '~'
|
|
#127, // #127
|
|
#208#130, // #128
|
|
#208#131, // #129
|
|
#226#128#154, // #130
|
|
#209#147, // #131
|
|
#226#128#158, // #132
|
|
#226#128#166, // #133
|
|
#226#128#160, // #134
|
|
#226#128#161, // #135
|
|
#226#130#172, // #136
|
|
#226#128#176, // #137
|
|
#208#137, // #138
|
|
#226#128#185, // #139
|
|
#208#138, // #140
|
|
#208#140, // #141
|
|
#208#139, // #142
|
|
#208#143, // #143
|
|
#209#146, // #144
|
|
#226#128#152, // #145
|
|
#226#128#153, // #146
|
|
#226#128#156, // #147
|
|
#226#128#157, // #148
|
|
#226#128#162, // #149
|
|
#226#128#147, // #150
|
|
#226#128#148, // #151
|
|
'', // #152
|
|
#226#132#162, // #153
|
|
#209#153, // #154
|
|
#226#128#186, // #155
|
|
#209#154, // #156
|
|
#209#156, // #157
|
|
#209#155, // #158
|
|
#209#159, // #159
|
|
#194#160, // #160
|
|
#208#142, // #161
|
|
#209#158, // #162
|
|
#208#136, // #163
|
|
#194#164, // #164
|
|
#210#144, // #165
|
|
#194#166, // #166
|
|
#194#167, // #167
|
|
#208#129, // #168
|
|
#194#169, // #169
|
|
#208#132, // #170
|
|
#194#171, // #171
|
|
#194#172, // #172
|
|
#194#173, // #173
|
|
#194#174, // #174
|
|
#208#135, // #175
|
|
#194#176, // #176
|
|
#194#177, // #177
|
|
#208#134, // #178
|
|
#209#150, // #179
|
|
#210#145, // #180
|
|
#194#181, // #181
|
|
#194#182, // #182
|
|
#194#183, // #183
|
|
#209#145, // #184
|
|
#226#132#150, // #185
|
|
#209#148, // #186
|
|
#194#187, // #187
|
|
#209#152, // #188
|
|
#208#133, // #189
|
|
#209#149, // #190
|
|
#209#151, // #191
|
|
#208#144, // #192
|
|
#208#145, // #193
|
|
#208#146, // #194
|
|
#208#147, // #195
|
|
#208#148, // #196
|
|
#208#149, // #197
|
|
#208#150, // #198
|
|
#208#151, // #199
|
|
#208#152, // #200
|
|
#208#153, // #201
|
|
#208#154, // #202
|
|
#208#155, // #203
|
|
#208#156, // #204
|
|
#208#157, // #205
|
|
#208#158, // #206
|
|
#208#159, // #207
|
|
#208#160, // #208
|
|
#208#161, // #209
|
|
#208#162, // #210
|
|
#208#163, // #211
|
|
#208#164, // #212
|
|
#208#165, // #213
|
|
#208#166, // #214
|
|
#208#167, // #215
|
|
#208#168, // #216
|
|
#208#169, // #217
|
|
#208#170, // #218
|
|
#208#171, // #219
|
|
#208#172, // #220
|
|
#208#173, // #221
|
|
#208#174, // #222
|
|
#208#175, // #223
|
|
#208#176, // #224
|
|
#208#177, // #225
|
|
#208#178, // #226
|
|
#208#179, // #227
|
|
#208#180, // #228
|
|
#208#181, // #229
|
|
#208#182, // #230
|
|
#208#183, // #231
|
|
#208#184, // #232
|
|
#208#185, // #233
|
|
#208#186, // #234
|
|
#208#187, // #235
|
|
#208#188, // #236
|
|
#208#189, // #237
|
|
#208#190, // #238
|
|
#208#191, // #239
|
|
#209#128, // #240
|
|
#209#129, // #241
|
|
#209#130, // #242
|
|
#209#131, // #243
|
|
#209#132, // #244
|
|
#209#133, // #245
|
|
#209#134, // #246
|
|
#209#135, // #247
|
|
#209#136, // #248
|
|
#209#137, // #249
|
|
#209#138, // #250
|
|
#209#139, // #251
|
|
#209#140, // #252
|
|
#209#141, // #253
|
|
#209#142, // #254
|
|
#209#143 // #255
|
|
);
|
|
|
|
ArrayCP1252ToUTF8: TCharToUTF8Table = (
|
|
#0, // #0
|
|
#1, // #1
|
|
#2, // #2
|
|
#3, // #3
|
|
#4, // #4
|
|
#5, // #5
|
|
#6, // #6
|
|
#7, // #7
|
|
#8, // #8
|
|
#9, // #9
|
|
#10, // #10
|
|
#11, // #11
|
|
#12, // #12
|
|
#13, // #13
|
|
#14, // #14
|
|
#15, // #15
|
|
#16, // #16
|
|
#17, // #17
|
|
#18, // #18
|
|
#19, // #19
|
|
#20, // #20
|
|
#21, // #21
|
|
#22, // #22
|
|
#23, // #23
|
|
#24, // #24
|
|
#25, // #25
|
|
#26, // #26
|
|
#27, // #27
|
|
#28, // #28
|
|
#29, // #29
|
|
#30, // #30
|
|
#31, // #31
|
|
' ', // ' '
|
|
'!', // '!'
|
|
'"', // '"'
|
|
'#', // '#'
|
|
'$', // '$'
|
|
'%', // '%'
|
|
'&', // '&'
|
|
'''', // ''''
|
|
'(', // '('
|
|
')', // ')'
|
|
'*', // '*'
|
|
'+', // '+'
|
|
',', // ','
|
|
'-', // '-'
|
|
'.', // '.'
|
|
'/', // '/'
|
|
'0', // '0'
|
|
'1', // '1'
|
|
'2', // '2'
|
|
'3', // '3'
|
|
'4', // '4'
|
|
'5', // '5'
|
|
'6', // '6'
|
|
'7', // '7'
|
|
'8', // '8'
|
|
'9', // '9'
|
|
':', // ':'
|
|
';', // ';'
|
|
'<', // '<'
|
|
'=', // '='
|
|
'>', // '>'
|
|
'?', // '?'
|
|
'@', // '@'
|
|
'A', // 'A'
|
|
'B', // 'B'
|
|
'C', // 'C'
|
|
'D', // 'D'
|
|
'E', // 'E'
|
|
'F', // 'F'
|
|
'G', // 'G'
|
|
'H', // 'H'
|
|
'I', // 'I'
|
|
'J', // 'J'
|
|
'K', // 'K'
|
|
'L', // 'L'
|
|
'M', // 'M'
|
|
'N', // 'N'
|
|
'O', // 'O'
|
|
'P', // 'P'
|
|
'Q', // 'Q'
|
|
'R', // 'R'
|
|
'S', // 'S'
|
|
'T', // 'T'
|
|
'U', // 'U'
|
|
'V', // 'V'
|
|
'W', // 'W'
|
|
'X', // 'X'
|
|
'Y', // 'Y'
|
|
'Z', // 'Z'
|
|
'[', // '['
|
|
'\', // '\'
|
|
']', // ']'
|
|
'^', // '^'
|
|
'_', // '_'
|
|
'`', // '`'
|
|
'a', // 'a'
|
|
'b', // 'b'
|
|
'c', // 'c'
|
|
'd', // 'd'
|
|
'e', // 'e'
|
|
'f', // 'f'
|
|
'g', // 'g'
|
|
'h', // 'h'
|
|
'i', // 'i'
|
|
'j', // 'j'
|
|
'k', // 'k'
|
|
'l', // 'l'
|
|
'm', // 'm'
|
|
'n', // 'n'
|
|
'o', // 'o'
|
|
'p', // 'p'
|
|
'q', // 'q'
|
|
'r', // 'r'
|
|
's', // 's'
|
|
't', // 't'
|
|
'u', // 'u'
|
|
'v', // 'v'
|
|
'w', // 'w'
|
|
'x', // 'x'
|
|
'y', // 'y'
|
|
'z', // 'z'
|
|
'{', // '{'
|
|
'|', // '|'
|
|
'}', // '}'
|
|
'~', // '~'
|
|
#127, // #127
|
|
#226#130#172, // #128
|
|
'', // #129
|
|
#226#128#154, // #130
|
|
#198#146, // #131
|
|
#226#128#158, // #132
|
|
#226#128#166, // #133
|
|
#226#128#160, // #134
|
|
#226#128#161, // #135
|
|
#203#134, // #136
|
|
#226#128#176, // #137
|
|
#197#160, // #138
|
|
#226#128#185, // #139
|
|
#197#146, // #140
|
|
'', // #141
|
|
#197#189, // #142
|
|
'', // #143
|
|
'', // #144
|
|
#226#128#152, // #145
|
|
#226#128#153, // #146
|
|
#226#128#156, // #147
|
|
#226#128#157, // #148
|
|
#226#128#162, // #149
|
|
#226#128#147, // #150
|
|
#226#128#148, // #151
|
|
#203#156, // #152
|
|
#226#132#162, // #153
|
|
#197#161, // #154
|
|
#226#128#186, // #155
|
|
#197#147, // #156
|
|
'', // #157
|
|
#197#190, // #158
|
|
#197#184, // #159
|
|
#194#160, // #160
|
|
#194#161, // #161
|
|
#194#162, // #162
|
|
#194#163, // #163
|
|
#194#164, // #164
|
|
#194#165, // #165
|
|
#194#166, // #166
|
|
#194#167, // #167
|
|
#194#168, // #168
|
|
#194#169, // #169
|
|
#194#170, // #170
|
|
#194#171, // #171
|
|
#194#172, // #172
|
|
#194#173, // #173
|
|
#194#174, // #174
|
|
#194#175, // #175
|
|
#194#176, // #176
|
|
#194#177, // #177
|
|
#194#178, // #178
|
|
#194#179, // #179
|
|
#194#180, // #180
|
|
#194#181, // #181
|
|
#194#182, // #182
|
|
#194#183, // #183
|
|
#194#184, // #184
|
|
#194#185, // #185
|
|
#194#186, // #186
|
|
#194#187, // #187
|
|
#194#188, // #188
|
|
#194#189, // #189
|
|
#194#190, // #190
|
|
#194#191, // #191
|
|
#195#128, // #192
|
|
#195#129, // #193
|
|
#195#130, // #194
|
|
#195#131, // #195
|
|
#195#132, // #196
|
|
#195#133, // #197
|
|
#195#134, // #198
|
|
#195#135, // #199
|
|
#195#136, // #200
|
|
#195#137, // #201
|
|
#195#138, // #202
|
|
#195#139, // #203
|
|
#195#140, // #204
|
|
#195#141, // #205
|
|
#195#142, // #206
|
|
#195#143, // #207
|
|
#195#144, // #208
|
|
#195#145, // #209
|
|
#195#146, // #210
|
|
#195#147, // #211
|
|
#195#148, // #212
|
|
#195#149, // #213
|
|
#195#150, // #214
|
|
#195#151, // #215
|
|
#195#152, // #216
|
|
#195#153, // #217
|
|
#195#154, // #218
|
|
#195#155, // #219
|
|
#195#156, // #220
|
|
#195#157, // #221
|
|
#195#158, // #222
|
|
#195#159, // #223
|
|
#195#160, // #224
|
|
#195#161, // #225
|
|
#195#162, // #226
|
|
#195#163, // #227
|
|
#195#164, // #228
|
|
#195#165, // #229
|
|
#195#166, // #230
|
|
#195#167, // #231
|
|
#195#168, // #232
|
|
#195#169, // #233
|
|
#195#170, // #234
|
|
#195#171, // #235
|
|
#195#172, // #236
|
|
#195#173, // #237
|
|
#195#174, // #238
|
|
#195#175, // #239
|
|
#195#176, // #240
|
|
#195#177, // #241
|
|
#195#178, // #242
|
|
#195#179, // #243
|
|
#195#180, // #244
|
|
#195#181, // #245
|
|
#195#182, // #246
|
|
#195#183, // #247
|
|
#195#184, // #248
|
|
#195#185, // #249
|
|
#195#186, // #250
|
|
#195#187, // #251
|
|
#195#188, // #252
|
|
#195#189, // #253
|
|
#195#190, // #254
|
|
#195#191 // #255
|
|
);
|
|
|
|
ArrayCP1253ToUTF8: TCharToUTF8Table = (
|
|
#0, // #0
|
|
#1, // #1
|
|
#2, // #2
|
|
#3, // #3
|
|
#4, // #4
|
|
#5, // #5
|
|
#6, // #6
|
|
#7, // #7
|
|
#8, // #8
|
|
#9, // #9
|
|
#10, // #10
|
|
#11, // #11
|
|
#12, // #12
|
|
#13, // #13
|
|
#14, // #14
|
|
#15, // #15
|
|
#16, // #16
|
|
#17, // #17
|
|
#18, // #18
|
|
#19, // #19
|
|
#20, // #20
|
|
#21, // #21
|
|
#22, // #22
|
|
#23, // #23
|
|
#24, // #24
|
|
#25, // #25
|
|
#26, // #26
|
|
#27, // #27
|
|
#28, // #28
|
|
#29, // #29
|
|
#30, // #30
|
|
#31, // #31
|
|
' ', // ' '
|
|
'!', // '!'
|
|
'"', // '"'
|
|
'#', // '#'
|
|
'$', // '$'
|
|
'%', // '%'
|
|
'&', // '&'
|
|
'''', // ''''
|
|
'(', // '('
|
|
')', // ')'
|
|
'*', // '*'
|
|
'+', // '+'
|
|
',', // ','
|
|
'-', // '-'
|
|
'.', // '.'
|
|
'/', // '/'
|
|
'0', // '0'
|
|
'1', // '1'
|
|
'2', // '2'
|
|
'3', // '3'
|
|
'4', // '4'
|
|
'5', // '5'
|
|
'6', // '6'
|
|
'7', // '7'
|
|
'8', // '8'
|
|
'9', // '9'
|
|
':', // ':'
|
|
';', // ';'
|
|
'<', // '<'
|
|
'=', // '='
|
|
'>', // '>'
|
|
'?', // '?'
|
|
'@', // '@'
|
|
'A', // 'A'
|
|
'B', // 'B'
|
|
'C', // 'C'
|
|
'D', // 'D'
|
|
'E', // 'E'
|
|
'F', // 'F'
|
|
'G', // 'G'
|
|
'H', // 'H'
|
|
'I', // 'I'
|
|
'J', // 'J'
|
|
'K', // 'K'
|
|
'L', // 'L'
|
|
'M', // 'M'
|
|
'N', // 'N'
|
|
'O', // 'O'
|
|
'P', // 'P'
|
|
'Q', // 'Q'
|
|
'R', // 'R'
|
|
'S', // 'S'
|
|
'T', // 'T'
|
|
'U', // 'U'
|
|
'V', // 'V'
|
|
'W', // 'W'
|
|
'X', // 'X'
|
|
'Y', // 'Y'
|
|
'Z', // 'Z'
|
|
'[', // '['
|
|
'\', // '\'
|
|
']', // ']'
|
|
'^', // '^'
|
|
'_', // '_'
|
|
'`', // '`'
|
|
'a', // 'a'
|
|
'b', // 'b'
|
|
'c', // 'c'
|
|
'd', // 'd'
|
|
'e', // 'e'
|
|
'f', // 'f'
|
|
'g', // 'g'
|
|
'h', // 'h'
|
|
'i', // 'i'
|
|
'j', // 'j'
|
|
'k', // 'k'
|
|
'l', // 'l'
|
|
'm', // 'm'
|
|
'n', // 'n'
|
|
'o', // 'o'
|
|
'p', // 'p'
|
|
'q', // 'q'
|
|
'r', // 'r'
|
|
's', // 's'
|
|
't', // 't'
|
|
'u', // 'u'
|
|
'v', // 'v'
|
|
'w', // 'w'
|
|
'x', // 'x'
|
|
'y', // 'y'
|
|
'z', // 'z'
|
|
'{', // '{'
|
|
'|', // '|'
|
|
'}', // '}'
|
|
'~', // '~'
|
|
#127, // #127
|
|
#226#130#172, // #128
|
|
'', // #129
|
|
#226#128#154, // #130
|
|
#198#146, // #131
|
|
#226#128#158, // #132
|
|
#226#128#166, // #133
|
|
#226#128#160, // #134
|
|
#226#128#161, // #135
|
|
'', // #136
|
|
#226#128#176, // #137
|
|
'', // #138
|
|
#226#128#185, // #139
|
|
'', // #140
|
|
'', // #141
|
|
'', // #142
|
|
'', // #143
|
|
'', // #144
|
|
#226#128#152, // #145
|
|
#226#128#153, // #146
|
|
#226#128#156, // #147
|
|
#226#128#157, // #148
|
|
#226#128#162, // #149
|
|
#226#128#147, // #150
|
|
#226#128#148, // #151
|
|
'', // #152
|
|
#226#132#162, // #153
|
|
'', // #154
|
|
#226#128#186, // #155
|
|
'', // #156
|
|
'', // #157
|
|
'', // #158
|
|
'', // #159
|
|
#194#160, // #160
|
|
#206#133, // #161
|
|
#206#134, // #162
|
|
#194#163, // #163
|
|
#194#164, // #164
|
|
#194#165, // #165
|
|
#194#166, // #166
|
|
#194#167, // #167
|
|
#194#168, // #168
|
|
#194#169, // #169
|
|
'', // #170
|
|
#194#171, // #171
|
|
#194#172, // #172
|
|
#194#173, // #173
|
|
#194#174, // #174
|
|
#226#128#149, // #175
|
|
#194#176, // #176
|
|
#194#177, // #177
|
|
#194#178, // #178
|
|
#194#179, // #179
|
|
#206#132, // #180
|
|
#194#181, // #181
|
|
#194#182, // #182
|
|
#194#183, // #183
|
|
#206#136, // #184
|
|
#206#137, // #185
|
|
#206#138, // #186
|
|
#194#187, // #187
|
|
#206#140, // #188
|
|
#194#189, // #189
|
|
#206#142, // #190
|
|
#206#143, // #191
|
|
#206#144, // #192
|
|
#206#145, // #193
|
|
#206#146, // #194
|
|
#206#147, // #195
|
|
#206#148, // #196
|
|
#206#149, // #197
|
|
#206#150, // #198
|
|
#206#151, // #199
|
|
#206#152, // #200
|
|
#206#153, // #201
|
|
#206#154, // #202
|
|
#206#155, // #203
|
|
#206#156, // #204
|
|
#206#157, // #205
|
|
#206#158, // #206
|
|
#206#159, // #207
|
|
#206#160, // #208
|
|
#206#161, // #209
|
|
'', // #210
|
|
#206#163, // #211
|
|
#206#164, // #212
|
|
#206#165, // #213
|
|
#206#166, // #214
|
|
#206#167, // #215
|
|
#206#168, // #216
|
|
#206#169, // #217
|
|
#206#170, // #218
|
|
#206#171, // #219
|
|
#206#172, // #220
|
|
#206#173, // #221
|
|
#206#174, // #222
|
|
#206#175, // #223
|
|
#206#176, // #224
|
|
#206#177, // #225
|
|
#206#178, // #226
|
|
#206#179, // #227
|
|
#206#180, // #228
|
|
#206#181, // #229
|
|
#206#182, // #230
|
|
#206#183, // #231
|
|
#206#184, // #232
|
|
#206#185, // #233
|
|
#206#186, // #234
|
|
#206#187, // #235
|
|
#206#188, // #236
|
|
#206#189, // #237
|
|
#206#190, // #238
|
|
#206#191, // #239
|
|
#207#128, // #240
|
|
#207#129, // #241
|
|
#207#130, // #242
|
|
#207#131, // #243
|
|
#207#132, // #244
|
|
#207#133, // #245
|
|
#207#134, // #246
|
|
#207#135, // #247
|
|
#207#136, // #248
|
|
#207#137, // #249
|
|
#207#138, // #250
|
|
#207#139, // #251
|
|
#207#140, // #252
|
|
#207#141, // #253
|
|
#207#142, // #254
|
|
'' // #255
|
|
);
|
|
|
|
ArrayCP1254ToUTF8: TCharToUTF8Table = (
|
|
#0, // #0
|
|
#1, // #1
|
|
#2, // #2
|
|
#3, // #3
|
|
#4, // #4
|
|
#5, // #5
|
|
#6, // #6
|
|
#7, // #7
|
|
#8, // #8
|
|
#9, // #9
|
|
#10, // #10
|
|
#11, // #11
|
|
#12, // #12
|
|
#13, // #13
|
|
#14, // #14
|
|
#15, // #15
|
|
#16, // #16
|
|
#17, // #17
|
|
#18, // #18
|
|
#19, // #19
|
|
#20, // #20
|
|
#21, // #21
|
|
#22, // #22
|
|
#23, // #23
|
|
#24, // #24
|
|
#25, // #25
|
|
#26, // #26
|
|
#27, // #27
|
|
#28, // #28
|
|
#29, // #29
|
|
#30, // #30
|
|
#31, // #31
|
|
' ', // ' '
|
|
'!', // '!'
|
|
'"', // '"'
|
|
'#', // '#'
|
|
'$', // '$'
|
|
'%', // '%'
|
|
'&', // '&'
|
|
'''', // ''''
|
|
'(', // '('
|
|
')', // ')'
|
|
'*', // '*'
|
|
'+', // '+'
|
|
',', // ','
|
|
'-', // '-'
|
|
'.', // '.'
|
|
'/', // '/'
|
|
'0', // '0'
|
|
'1', // '1'
|
|
'2', // '2'
|
|
'3', // '3'
|
|
'4', // '4'
|
|
'5', // '5'
|
|
'6', // '6'
|
|
'7', // '7'
|
|
'8', // '8'
|
|
'9', // '9'
|
|
':', // ':'
|
|
';', // ';'
|
|
'<', // '<'
|
|
'=', // '='
|
|
'>', // '>'
|
|
'?', // '?'
|
|
'@', // '@'
|
|
'A', // 'A'
|
|
'B', // 'B'
|
|
'C', // 'C'
|
|
'D', // 'D'
|
|
'E', // 'E'
|
|
'F', // 'F'
|
|
'G', // 'G'
|
|
'H', // 'H'
|
|
'I', // 'I'
|
|
'J', // 'J'
|
|
'K', // 'K'
|
|
'L', // 'L'
|
|
'M', // 'M'
|
|
'N', // 'N'
|
|
'O', // 'O'
|
|
'P', // 'P'
|
|
'Q', // 'Q'
|
|
'R', // 'R'
|
|
'S', // 'S'
|
|
'T', // 'T'
|
|
'U', // 'U'
|
|
'V', // 'V'
|
|
'W', // 'W'
|
|
'X', // 'X'
|
|
'Y', // 'Y'
|
|
'Z', // 'Z'
|
|
'[', // '['
|
|
'\', // '\'
|
|
']', // ']'
|
|
'^', // '^'
|
|
'_', // '_'
|
|
'`', // '`'
|
|
'a', // 'a'
|
|
'b', // 'b'
|
|
'c', // 'c'
|
|
'd', // 'd'
|
|
'e', // 'e'
|
|
'f', // 'f'
|
|
'g', // 'g'
|
|
'h', // 'h'
|
|
'i', // 'i'
|
|
'j', // 'j'
|
|
'k', // 'k'
|
|
'l', // 'l'
|
|
'm', // 'm'
|
|
'n', // 'n'
|
|
'o', // 'o'
|
|
'p', // 'p'
|
|
'q', // 'q'
|
|
'r', // 'r'
|
|
's', // 's'
|
|
't', // 't'
|
|
'u', // 'u'
|
|
'v', // 'v'
|
|
'w', // 'w'
|
|
'x', // 'x'
|
|
'y', // 'y'
|
|
'z', // 'z'
|
|
'{', // '{'
|
|
'|', // '|'
|
|
'}', // '}'
|
|
'~', // '~'
|
|
#127, // #127
|
|
#226#130#172, // #128
|
|
'', // #129
|
|
#226#128#154, // #130
|
|
#198#146, // #131
|
|
#226#128#158, // #132
|
|
#226#128#166, // #133
|
|
#226#128#160, // #134
|
|
#226#128#161, // #135
|
|
#203#134, // #136
|
|
#226#128#176, // #137
|
|
#197#160, // #138
|
|
#226#128#185, // #139
|
|
#197#146, // #140
|
|
'', // #141
|
|
'', // #142
|
|
'', // #143
|
|
'', // #144
|
|
#226#128#152, // #145
|
|
#226#128#153, // #146
|
|
#226#128#156, // #147
|
|
#226#128#157, // #148
|
|
#226#128#162, // #149
|
|
#226#128#147, // #150
|
|
#226#128#148, // #151
|
|
#203#156, // #152
|
|
#226#132#162, // #153
|
|
#197#161, // #154
|
|
#226#128#186, // #155
|
|
#197#147, // #156
|
|
'', // #157
|
|
'', // #158
|
|
#197#184, // #159
|
|
#194#160, // #160
|
|
#194#161, // #161
|
|
#194#162, // #162
|
|
#194#163, // #163
|
|
#194#164, // #164
|
|
#194#165, // #165
|
|
#194#166, // #166
|
|
#194#167, // #167
|
|
#194#168, // #168
|
|
#194#169, // #169
|
|
#194#170, // #170
|
|
#194#171, // #171
|
|
#194#172, // #172
|
|
#194#173, // #173
|
|
#194#174, // #174
|
|
#194#175, // #175
|
|
#194#176, // #176
|
|
#194#177, // #177
|
|
#194#178, // #178
|
|
#194#179, // #179
|
|
#194#180, // #180
|
|
#194#181, // #181
|
|
#194#182, // #182
|
|
#194#183, // #183
|
|
#194#184, // #184
|
|
#194#185, // #185
|
|
#194#186, // #186
|
|
#194#187, // #187
|
|
#194#188, // #188
|
|
#194#189, // #189
|
|
#194#190, // #190
|
|
#194#191, // #191
|
|
#195#128, // #192
|
|
#195#129, // #193
|
|
#195#130, // #194
|
|
#195#131, // #195
|
|
#195#132, // #196
|
|
#195#133, // #197
|
|
#195#134, // #198
|
|
#195#135, // #199
|
|
#195#136, // #200
|
|
#195#137, // #201
|
|
#195#138, // #202
|
|
#195#139, // #203
|
|
#195#140, // #204
|
|
#195#141, // #205
|
|
#195#142, // #206
|
|
#195#143, // #207
|
|
#196#158, // #208
|
|
#195#145, // #209
|
|
#195#146, // #210
|
|
#195#147, // #211
|
|
#195#148, // #212
|
|
#195#149, // #213
|
|
#195#150, // #214
|
|
#195#151, // #215
|
|
#195#152, // #216
|
|
#195#153, // #217
|
|
#195#154, // #218
|
|
#195#155, // #219
|
|
#195#156, // #220
|
|
#196#176, // #221
|
|
#197#158, // #222
|
|
#195#159, // #223
|
|
#195#160, // #224
|
|
#195#161, // #225
|
|
#195#162, // #226
|
|
#195#163, // #227
|
|
#195#164, // #228
|
|
#195#165, // #229
|
|
#195#166, // #230
|
|
#195#167, // #231
|
|
#195#168, // #232
|
|
#195#169, // #233
|
|
#195#170, // #234
|
|
#195#171, // #235
|
|
#195#172, // #236
|
|
#195#173, // #237
|
|
#195#174, // #238
|
|
#195#175, // #239
|
|
#196#159, // #240
|
|
#195#177, // #241
|
|
#195#178, // #242
|
|
#195#179, // #243
|
|
#195#180, // #244
|
|
#195#181, // #245
|
|
#195#182, // #246
|
|
#195#183, // #247
|
|
#195#184, // #248
|
|
#195#185, // #249
|
|
#195#186, // #250
|
|
#195#187, // #251
|
|
#195#188, // #252
|
|
#196#177, // #253
|
|
#197#159, // #254
|
|
#195#191 // #255
|
|
);
|
|
|
|
ArrayCP1255ToUTF8: TCharToUTF8Table = (
|
|
#0, // #0
|
|
#1, // #1
|
|
#2, // #2
|
|
#3, // #3
|
|
#4, // #4
|
|
#5, // #5
|
|
#6, // #6
|
|
#7, // #7
|
|
#8, // #8
|
|
#9, // #9
|
|
#10, // #10
|
|
#11, // #11
|
|
#12, // #12
|
|
#13, // #13
|
|
#14, // #14
|
|
#15, // #15
|
|
#16, // #16
|
|
#17, // #17
|
|
#18, // #18
|
|
#19, // #19
|
|
#20, // #20
|
|
#21, // #21
|
|
#22, // #22
|
|
#23, // #23
|
|
#24, // #24
|
|
#25, // #25
|
|
#26, // #26
|
|
#27, // #27
|
|
#28, // #28
|
|
#29, // #29
|
|
#30, // #30
|
|
#31, // #31
|
|
' ', // ' '
|
|
'!', // '!'
|
|
'"', // '"'
|
|
'#', // '#'
|
|
'$', // '$'
|
|
'%', // '%'
|
|
'&', // '&'
|
|
'''', // ''''
|
|
'(', // '('
|
|
')', // ')'
|
|
'*', // '*'
|
|
'+', // '+'
|
|
',', // ','
|
|
'-', // '-'
|
|
'.', // '.'
|
|
'/', // '/'
|
|
'0', // '0'
|
|
'1', // '1'
|
|
'2', // '2'
|
|
'3', // '3'
|
|
'4', // '4'
|
|
'5', // '5'
|
|
'6', // '6'
|
|
'7', // '7'
|
|
'8', // '8'
|
|
'9', // '9'
|
|
':', // ':'
|
|
';', // ';'
|
|
'<', // '<'
|
|
'=', // '='
|
|
'>', // '>'
|
|
'?', // '?'
|
|
'@', // '@'
|
|
'A', // 'A'
|
|
'B', // 'B'
|
|
'C', // 'C'
|
|
'D', // 'D'
|
|
'E', // 'E'
|
|
'F', // 'F'
|
|
'G', // 'G'
|
|
'H', // 'H'
|
|
'I', // 'I'
|
|
'J', // 'J'
|
|
'K', // 'K'
|
|
'L', // 'L'
|
|
'M', // 'M'
|
|
'N', // 'N'
|
|
'O', // 'O'
|
|
'P', // 'P'
|
|
'Q', // 'Q'
|
|
'R', // 'R'
|
|
'S', // 'S'
|
|
'T', // 'T'
|
|
'U', // 'U'
|
|
'V', // 'V'
|
|
'W', // 'W'
|
|
'X', // 'X'
|
|
'Y', // 'Y'
|
|
'Z', // 'Z'
|
|
'[', // '['
|
|
'\', // '\'
|
|
']', // ']'
|
|
'^', // '^'
|
|
'_', // '_'
|
|
'`', // '`'
|
|
'a', // 'a'
|
|
'b', // 'b'
|
|
'c', // 'c'
|
|
'd', // 'd'
|
|
'e', // 'e'
|
|
'f', // 'f'
|
|
'g', // 'g'
|
|
'h', // 'h'
|
|
'i', // 'i'
|
|
'j', // 'j'
|
|
'k', // 'k'
|
|
'l', // 'l'
|
|
'm', // 'm'
|
|
'n', // 'n'
|
|
'o', // 'o'
|
|
'p', // 'p'
|
|
'q', // 'q'
|
|
'r', // 'r'
|
|
's', // 's'
|
|
't', // 't'
|
|
'u', // 'u'
|
|
'v', // 'v'
|
|
'w', // 'w'
|
|
'x', // 'x'
|
|
'y', // 'y'
|
|
'z', // 'z'
|
|
'{', // '{'
|
|
'|', // '|'
|
|
'}', // '}'
|
|
'~', // '~'
|
|
#127, // #127
|
|
#226#130#172, // #128
|
|
'', // #129
|
|
#226#128#154, // #130
|
|
#198#146, // #131
|
|
#226#128#158, // #132
|
|
#226#128#166, // #133
|
|
#226#128#160, // #134
|
|
#226#128#161, // #135
|
|
#203#134, // #136
|
|
#226#128#176, // #137
|
|
'', // #138
|
|
#226#128#185, // #139
|
|
'', // #140
|
|
'', // #141
|
|
'', // #142
|
|
'', // #143
|
|
'', // #144
|
|
#226#128#152, // #145
|
|
#226#128#153, // #146
|
|
#226#128#156, // #147
|
|
#226#128#157, // #148
|
|
#226#128#162, // #149
|
|
#226#128#147, // #150
|
|
#226#128#148, // #151
|
|
#203#156, // #152
|
|
#226#132#162, // #153
|
|
'', // #154
|
|
#226#128#186, // #155
|
|
'', // #156
|
|
'', // #157
|
|
'', // #158
|
|
'', // #159
|
|
#194#160, // #160
|
|
#194#161, // #161
|
|
#194#162, // #162
|
|
#194#163, // #163
|
|
#226#130#170, // #164
|
|
#194#165, // #165
|
|
#194#166, // #166
|
|
#194#167, // #167
|
|
#194#168, // #168
|
|
#194#169, // #169
|
|
#195#151, // #170
|
|
#194#171, // #171
|
|
#194#172, // #172
|
|
#194#173, // #173
|
|
#194#174, // #174
|
|
#194#175, // #175
|
|
#194#176, // #176
|
|
#194#177, // #177
|
|
#194#178, // #178
|
|
#194#179, // #179
|
|
#194#180, // #180
|
|
#194#181, // #181
|
|
#194#182, // #182
|
|
#194#183, // #183
|
|
#194#184, // #184
|
|
#194#185, // #185
|
|
#195#183, // #186
|
|
#194#187, // #187
|
|
#194#188, // #188
|
|
#194#189, // #189
|
|
#194#190, // #190
|
|
#194#191, // #191
|
|
#214#176, // #192
|
|
#214#177, // #193
|
|
#214#178, // #194
|
|
#214#179, // #195
|
|
#214#180, // #196
|
|
#214#181, // #197
|
|
#214#182, // #198
|
|
#214#183, // #199
|
|
#214#184, // #200
|
|
#214#185, // #201
|
|
'', // #202
|
|
#214#187, // #203
|
|
#214#188, // #204
|
|
#214#189, // #205
|
|
#214#190, // #206
|
|
#214#191, // #207
|
|
#215#128, // #208
|
|
#215#129, // #209
|
|
#215#130, // #210
|
|
#215#131, // #211
|
|
#215#176, // #212
|
|
#215#177, // #213
|
|
#215#178, // #214
|
|
#215#179, // #215
|
|
#215#180, // #216
|
|
'', // #217
|
|
'', // #218
|
|
'', // #219
|
|
'', // #220
|
|
'', // #221
|
|
'', // #222
|
|
'', // #223
|
|
#215#144, // #224
|
|
#215#145, // #225
|
|
#215#146, // #226
|
|
#215#147, // #227
|
|
#215#148, // #228
|
|
#215#149, // #229
|
|
#215#150, // #230
|
|
#215#151, // #231
|
|
#215#152, // #232
|
|
#215#153, // #233
|
|
#215#154, // #234
|
|
#215#155, // #235
|
|
#215#156, // #236
|
|
#215#157, // #237
|
|
#215#158, // #238
|
|
#215#159, // #239
|
|
#215#160, // #240
|
|
#215#161, // #241
|
|
#215#162, // #242
|
|
#215#163, // #243
|
|
#215#164, // #244
|
|
#215#165, // #245
|
|
#215#166, // #246
|
|
#215#167, // #247
|
|
#215#168, // #248
|
|
#215#169, // #249
|
|
#215#170, // #250
|
|
'', // #251
|
|
'', // #252
|
|
#226#128#142, // #253
|
|
#226#128#143, // #254
|
|
'' // #255
|
|
);
|
|
|
|
ArrayCP1256ToUTF8: TCharToUTF8Table = (
|
|
#0, // #0
|
|
#1, // #1
|
|
#2, // #2
|
|
#3, // #3
|
|
#4, // #4
|
|
#5, // #5
|
|
#6, // #6
|
|
#7, // #7
|
|
#8, // #8
|
|
#9, // #9
|
|
#10, // #10
|
|
#11, // #11
|
|
#12, // #12
|
|
#13, // #13
|
|
#14, // #14
|
|
#15, // #15
|
|
#16, // #16
|
|
#17, // #17
|
|
#18, // #18
|
|
#19, // #19
|
|
#20, // #20
|
|
#21, // #21
|
|
#22, // #22
|
|
#23, // #23
|
|
#24, // #24
|
|
#25, // #25
|
|
#26, // #26
|
|
#27, // #27
|
|
#28, // #28
|
|
#29, // #29
|
|
#30, // #30
|
|
#31, // #31
|
|
' ', // ' '
|
|
'!', // '!'
|
|
'"', // '"'
|
|
'#', // '#'
|
|
'$', // '$'
|
|
'%', // '%'
|
|
'&', // '&'
|
|
'''', // ''''
|
|
'(', // '('
|
|
')', // ')'
|
|
'*', // '*'
|
|
'+', // '+'
|
|
',', // ','
|
|
'-', // '-'
|
|
'.', // '.'
|
|
'/', // '/'
|
|
'0', // '0'
|
|
'1', // '1'
|
|
'2', // '2'
|
|
'3', // '3'
|
|
'4', // '4'
|
|
'5', // '5'
|
|
'6', // '6'
|
|
'7', // '7'
|
|
'8', // '8'
|
|
'9', // '9'
|
|
':', // ':'
|
|
';', // ';'
|
|
'<', // '<'
|
|
'=', // '='
|
|
'>', // '>'
|
|
'?', // '?'
|
|
'@', // '@'
|
|
'A', // 'A'
|
|
'B', // 'B'
|
|
'C', // 'C'
|
|
'D', // 'D'
|
|
'E', // 'E'
|
|
'F', // 'F'
|
|
'G', // 'G'
|
|
'H', // 'H'
|
|
'I', // 'I'
|
|
'J', // 'J'
|
|
'K', // 'K'
|
|
'L', // 'L'
|
|
'M', // 'M'
|
|
'N', // 'N'
|
|
'O', // 'O'
|
|
'P', // 'P'
|
|
'Q', // 'Q'
|
|
'R', // 'R'
|
|
'S', // 'S'
|
|
'T', // 'T'
|
|
'U', // 'U'
|
|
'V', // 'V'
|
|
'W', // 'W'
|
|
'X', // 'X'
|
|
'Y', // 'Y'
|
|
'Z', // 'Z'
|
|
'[', // '['
|
|
'\', // '\'
|
|
']', // ']'
|
|
'^', // '^'
|
|
'_', // '_'
|
|
'`', // '`'
|
|
'a', // 'a'
|
|
'b', // 'b'
|
|
'c', // 'c'
|
|
'd', // 'd'
|
|
'e', // 'e'
|
|
'f', // 'f'
|
|
'g', // 'g'
|
|
'h', // 'h'
|
|
'i', // 'i'
|
|
'j', // 'j'
|
|
'k', // 'k'
|
|
'l', // 'l'
|
|
'm', // 'm'
|
|
'n', // 'n'
|
|
'o', // 'o'
|
|
'p', // 'p'
|
|
'q', // 'q'
|
|
'r', // 'r'
|
|
's', // 's'
|
|
't', // 't'
|
|
'u', // 'u'
|
|
'v', // 'v'
|
|
'w', // 'w'
|
|
'x', // 'x'
|
|
'y', // 'y'
|
|
'z', // 'z'
|
|
'{', // '{'
|
|
'|', // '|'
|
|
'}', // '}'
|
|
'~', // '~'
|
|
#127, // #127
|
|
#226#130#172, // #128
|
|
#217#190, // #129
|
|
#226#128#154, // #130
|
|
#198#146, // #131
|
|
#226#128#158, // #132
|
|
#226#128#166, // #133
|
|
#226#128#160, // #134
|
|
#226#128#161, // #135
|
|
#203#134, // #136
|
|
#226#128#176, // #137
|
|
#217#185, // #138
|
|
#226#128#185, // #139
|
|
#197#146, // #140
|
|
#218#134, // #141
|
|
#218#152, // #142
|
|
#218#136, // #143
|
|
#218#175, // #144
|
|
#226#128#152, // #145
|
|
#226#128#153, // #146
|
|
#226#128#156, // #147
|
|
#226#128#157, // #148
|
|
#226#128#162, // #149
|
|
#226#128#147, // #150
|
|
#226#128#148, // #151
|
|
#218#169, // #152
|
|
#226#132#162, // #153
|
|
#218#145, // #154
|
|
#226#128#186, // #155
|
|
#197#147, // #156
|
|
#226#128#140, // #157
|
|
#226#128#141, // #158
|
|
#218#186, // #159
|
|
#194#160, // #160
|
|
#216#140, // #161
|
|
#194#162, // #162
|
|
#194#163, // #163
|
|
#194#164, // #164
|
|
#194#165, // #165
|
|
#194#166, // #166
|
|
#194#167, // #167
|
|
#194#168, // #168
|
|
#194#169, // #169
|
|
#218#190, // #170
|
|
#194#171, // #171
|
|
#194#172, // #172
|
|
#194#173, // #173
|
|
#194#174, // #174
|
|
#194#175, // #175
|
|
#194#176, // #176
|
|
#194#177, // #177
|
|
#194#178, // #178
|
|
#194#179, // #179
|
|
#194#180, // #180
|
|
#194#181, // #181
|
|
#194#182, // #182
|
|
#194#183, // #183
|
|
#194#184, // #184
|
|
#194#185, // #185
|
|
#216#155, // #186
|
|
#194#187, // #187
|
|
#194#188, // #188
|
|
#194#189, // #189
|
|
#194#190, // #190
|
|
#216#159, // #191
|
|
#219#129, // #192
|
|
#216#161, // #193
|
|
#216#162, // #194
|
|
#216#163, // #195
|
|
#216#164, // #196
|
|
#216#165, // #197
|
|
#216#166, // #198
|
|
#216#167, // #199
|
|
#216#168, // #200
|
|
#216#169, // #201
|
|
#216#170, // #202
|
|
#216#171, // #203
|
|
#216#172, // #204
|
|
#216#173, // #205
|
|
#216#174, // #206
|
|
#216#175, // #207
|
|
#216#176, // #208
|
|
#216#177, // #209
|
|
#216#178, // #210
|
|
#216#179, // #211
|
|
#216#180, // #212
|
|
#216#181, // #213
|
|
#216#182, // #214
|
|
#195#151, // #215
|
|
#216#183, // #216
|
|
#216#184, // #217
|
|
#216#185, // #218
|
|
#216#186, // #219
|
|
#217#128, // #220
|
|
#217#129, // #221
|
|
#217#130, // #222
|
|
#217#131, // #223
|
|
#195#160, // #224
|
|
#217#132, // #225
|
|
#195#162, // #226
|
|
#217#133, // #227
|
|
#217#134, // #228
|
|
#217#135, // #229
|
|
#217#136, // #230
|
|
#195#167, // #231
|
|
#195#168, // #232
|
|
#195#169, // #233
|
|
#195#170, // #234
|
|
#195#171, // #235
|
|
#217#137, // #236
|
|
#217#138, // #237
|
|
#195#174, // #238
|
|
#195#175, // #239
|
|
#217#139, // #240
|
|
#217#140, // #241
|
|
#217#141, // #242
|
|
#217#142, // #243
|
|
#195#180, // #244
|
|
#217#143, // #245
|
|
#217#144, // #246
|
|
#195#183, // #247
|
|
#217#145, // #248
|
|
#195#185, // #249
|
|
#217#146, // #250
|
|
#195#187, // #251
|
|
#195#188, // #252
|
|
#226#128#142, // #253
|
|
#226#128#143, // #254
|
|
#219#146 // #255
|
|
);
|
|
|
|
ArrayCP1257ToUTF8: TCharToUTF8Table = (
|
|
#0, // #0
|
|
#1, // #1
|
|
#2, // #2
|
|
#3, // #3
|
|
#4, // #4
|
|
#5, // #5
|
|
#6, // #6
|
|
#7, // #7
|
|
#8, // #8
|
|
#9, // #9
|
|
#10, // #10
|
|
#11, // #11
|
|
#12, // #12
|
|
#13, // #13
|
|
#14, // #14
|
|
#15, // #15
|
|
#16, // #16
|
|
#17, // #17
|
|
#18, // #18
|
|
#19, // #19
|
|
#20, // #20
|
|
#21, // #21
|
|
#22, // #22
|
|
#23, // #23
|
|
#24, // #24
|
|
#25, // #25
|
|
#26, // #26
|
|
#27, // #27
|
|
#28, // #28
|
|
#29, // #29
|
|
#30, // #30
|
|
#31, // #31
|
|
' ', // ' '
|
|
'!', // '!'
|
|
'"', // '"'
|
|
'#', // '#'
|
|
'$', // '$'
|
|
'%', // '%'
|
|
'&', // '&'
|
|
'''', // ''''
|
|
'(', // '('
|
|
')', // ')'
|
|
'*', // '*'
|
|
'+', // '+'
|
|
',', // ','
|
|
'-', // '-'
|
|
'.', // '.'
|
|
'/', // '/'
|
|
'0', // '0'
|
|
'1', // '1'
|
|
'2', // '2'
|
|
'3', // '3'
|
|
'4', // '4'
|
|
'5', // '5'
|
|
'6', // '6'
|
|
'7', // '7'
|
|
'8', // '8'
|
|
'9', // '9'
|
|
':', // ':'
|
|
';', // ';'
|
|
'<', // '<'
|
|
'=', // '='
|
|
'>', // '>'
|
|
'?', // '?'
|
|
'@', // '@'
|
|
'A', // 'A'
|
|
'B', // 'B'
|
|
'C', // 'C'
|
|
'D', // 'D'
|
|
'E', // 'E'
|
|
'F', // 'F'
|
|
'G', // 'G'
|
|
'H', // 'H'
|
|
'I', // 'I'
|
|
'J', // 'J'
|
|
'K', // 'K'
|
|
'L', // 'L'
|
|
'M', // 'M'
|
|
'N', // 'N'
|
|
'O', // 'O'
|
|
'P', // 'P'
|
|
'Q', // 'Q'
|
|
'R', // 'R'
|
|
'S', // 'S'
|
|
'T', // 'T'
|
|
'U', // 'U'
|
|
'V', // 'V'
|
|
'W', // 'W'
|
|
'X', // 'X'
|
|
'Y', // 'Y'
|
|
'Z', // 'Z'
|
|
'[', // '['
|
|
'\', // '\'
|
|
']', // ']'
|
|
'^', // '^'
|
|
'_', // '_'
|
|
'`', // '`'
|
|
'a', // 'a'
|
|
'b', // 'b'
|
|
'c', // 'c'
|
|
'd', // 'd'
|
|
'e', // 'e'
|
|
'f', // 'f'
|
|
'g', // 'g'
|
|
'h', // 'h'
|
|
'i', // 'i'
|
|
'j', // 'j'
|
|
'k', // 'k'
|
|
'l', // 'l'
|
|
'm', // 'm'
|
|
'n', // 'n'
|
|
'o', // 'o'
|
|
'p', // 'p'
|
|
'q', // 'q'
|
|
'r', // 'r'
|
|
's', // 's'
|
|
't', // 't'
|
|
'u', // 'u'
|
|
'v', // 'v'
|
|
'w', // 'w'
|
|
'x', // 'x'
|
|
'y', // 'y'
|
|
'z', // 'z'
|
|
'{', // '{'
|
|
'|', // '|'
|
|
'}', // '}'
|
|
'~', // '~'
|
|
#127, // #127
|
|
#226#130#172, // #128
|
|
'', // #129
|
|
#226#128#154, // #130
|
|
'', // #131
|
|
#226#128#158, // #132
|
|
#226#128#166, // #133
|
|
#226#128#160, // #134
|
|
#226#128#161, // #135
|
|
'', // #136
|
|
#226#128#176, // #137
|
|
'', // #138
|
|
#226#128#185, // #139
|
|
'', // #140
|
|
#194#168, // #141
|
|
#203#135, // #142
|
|
#194#184, // #143
|
|
'', // #144
|
|
#226#128#152, // #145
|
|
#226#128#153, // #146
|
|
#226#128#156, // #147
|
|
#226#128#157, // #148
|
|
#226#128#162, // #149
|
|
#226#128#147, // #150
|
|
#226#128#148, // #151
|
|
'', // #152
|
|
#226#132#162, // #153
|
|
'', // #154
|
|
#226#128#186, // #155
|
|
'', // #156
|
|
#194#175, // #157
|
|
#203#155, // #158
|
|
'', // #159
|
|
#194#160, // #160
|
|
'', // #161
|
|
#194#162, // #162
|
|
#194#163, // #163
|
|
#194#164, // #164
|
|
'', // #165
|
|
#194#166, // #166
|
|
#194#167, // #167
|
|
#195#152, // #168
|
|
#194#169, // #169
|
|
#197#150, // #170
|
|
#194#171, // #171
|
|
#194#172, // #172
|
|
#194#173, // #173
|
|
#194#174, // #174
|
|
#195#134, // #175
|
|
#194#176, // #176
|
|
#194#177, // #177
|
|
#194#178, // #178
|
|
#194#179, // #179
|
|
#194#180, // #180
|
|
#194#181, // #181
|
|
#194#182, // #182
|
|
#194#183, // #183
|
|
#195#184, // #184
|
|
#194#185, // #185
|
|
#197#151, // #186
|
|
#194#187, // #187
|
|
#194#188, // #188
|
|
#194#189, // #189
|
|
#194#190, // #190
|
|
#195#166, // #191
|
|
#196#132, // #192
|
|
#196#174, // #193
|
|
#196#128, // #194
|
|
#196#134, // #195
|
|
#195#132, // #196
|
|
#195#133, // #197
|
|
#196#152, // #198
|
|
#196#146, // #199
|
|
#196#140, // #200
|
|
#195#137, // #201
|
|
#197#185, // #202
|
|
#196#150, // #203
|
|
#196#162, // #204
|
|
#196#182, // #205
|
|
#196#170, // #206
|
|
#196#187, // #207
|
|
#197#160, // #208
|
|
#197#131, // #209
|
|
#197#133, // #210
|
|
#195#147, // #211
|
|
#197#140, // #212
|
|
#195#149, // #213
|
|
#195#150, // #214
|
|
#195#151, // #215
|
|
#197#178, // #216
|
|
#197#129, // #217
|
|
#197#154, // #218
|
|
#197#170, // #219
|
|
#195#156, // #220
|
|
#197#187, // #221
|
|
#197#189, // #222
|
|
#195#159, // #223
|
|
#196#133, // #224
|
|
#196#175, // #225
|
|
#196#129, // #226
|
|
#196#135, // #227
|
|
#195#164, // #228
|
|
#195#165, // #229
|
|
#196#153, // #230
|
|
#196#147, // #231
|
|
#196#141, // #232
|
|
#195#169, // #233
|
|
#197#186, // #234
|
|
#196#151, // #235
|
|
#196#163, // #236
|
|
#196#183, // #237
|
|
#196#171, // #238
|
|
#196#188, // #239
|
|
#197#161, // #240
|
|
#197#132, // #241
|
|
#197#134, // #242
|
|
#195#179, // #243
|
|
#197#141, // #244
|
|
#195#181, // #245
|
|
#195#182, // #246
|
|
#195#183, // #247
|
|
#197#179, // #248
|
|
#197#130, // #249
|
|
#197#155, // #250
|
|
#197#171, // #251
|
|
#195#188, // #252
|
|
#197#188, // #253
|
|
#197#190, // #254
|
|
#203#153 // #255
|
|
);
|
|
|
|
ArrayCP1258ToUTF8: TCharToUTF8Table = (
|
|
#0, // #0
|
|
#1, // #1
|
|
#2, // #2
|
|
#3, // #3
|
|
#4, // #4
|
|
#5, // #5
|
|
#6, // #6
|
|
#7, // #7
|
|
#8, // #8
|
|
#9, // #9
|
|
#10, // #10
|
|
#11, // #11
|
|
#12, // #12
|
|
#13, // #13
|
|
#14, // #14
|
|
#15, // #15
|
|
#16, // #16
|
|
#17, // #17
|
|
#18, // #18
|
|
#19, // #19
|
|
#20, // #20
|
|
#21, // #21
|
|
#22, // #22
|
|
#23, // #23
|
|
#24, // #24
|
|
#25, // #25
|
|
#26, // #26
|
|
#27, // #27
|
|
#28, // #28
|
|
#29, // #29
|
|
#30, // #30
|
|
#31, // #31
|
|
' ', // ' '
|
|
'!', // '!'
|
|
'"', // '"'
|
|
'#', // '#'
|
|
'$', // '$'
|
|
'%', // '%'
|
|
'&', // '&'
|
|
'''', // ''''
|
|
'(', // '('
|
|
')', // ')'
|
|
'*', // '*'
|
|
'+', // '+'
|
|
',', // ','
|
|
'-', // '-'
|
|
'.', // '.'
|
|
'/', // '/'
|
|
'0', // '0'
|
|
'1', // '1'
|
|
'2', // '2'
|
|
'3', // '3'
|
|
'4', // '4'
|
|
'5', // '5'
|
|
'6', // '6'
|
|
'7', // '7'
|
|
'8', // '8'
|
|
'9', // '9'
|
|
':', // ':'
|
|
';', // ';'
|
|
'<', // '<'
|
|
'=', // '='
|
|
'>', // '>'
|
|
'?', // '?'
|
|
'@', // '@'
|
|
'A', // 'A'
|
|
'B', // 'B'
|
|
'C', // 'C'
|
|
'D', // 'D'
|
|
'E', // 'E'
|
|
'F', // 'F'
|
|
'G', // 'G'
|
|
'H', // 'H'
|
|
'I', // 'I'
|
|
'J', // 'J'
|
|
'K', // 'K'
|
|
'L', // 'L'
|
|
'M', // 'M'
|
|
'N', // 'N'
|
|
'O', // 'O'
|
|
'P', // 'P'
|
|
'Q', // 'Q'
|
|
'R', // 'R'
|
|
'S', // 'S'
|
|
'T', // 'T'
|
|
'U', // 'U'
|
|
'V', // 'V'
|
|
'W', // 'W'
|
|
'X', // 'X'
|
|
'Y', // 'Y'
|
|
'Z', // 'Z'
|
|
'[', // '['
|
|
'\', // '\'
|
|
']', // ']'
|
|
'^', // '^'
|
|
'_', // '_'
|
|
'`', // '`'
|
|
'a', // 'a'
|
|
'b', // 'b'
|
|
'c', // 'c'
|
|
'd', // 'd'
|
|
'e', // 'e'
|
|
'f', // 'f'
|
|
'g', // 'g'
|
|
'h', // 'h'
|
|
'i', // 'i'
|
|
'j', // 'j'
|
|
'k', // 'k'
|
|
'l', // 'l'
|
|
'm', // 'm'
|
|
'n', // 'n'
|
|
'o', // 'o'
|
|
'p', // 'p'
|
|
'q', // 'q'
|
|
'r', // 'r'
|
|
's', // 's'
|
|
't', // 't'
|
|
'u', // 'u'
|
|
'v', // 'v'
|
|
'w', // 'w'
|
|
'x', // 'x'
|
|
'y', // 'y'
|
|
'z', // 'z'
|
|
'{', // '{'
|
|
'|', // '|'
|
|
'}', // '}'
|
|
'~', // '~'
|
|
#127, // #127
|
|
#226#130#172, // #128
|
|
'', // #129
|
|
#226#128#154, // #130
|
|
#198#146, // #131
|
|
#226#128#158, // #132
|
|
#226#128#166, // #133
|
|
#226#128#160, // #134
|
|
#226#128#161, // #135
|
|
#203#134, // #136
|
|
#226#128#176, // #137
|
|
'', // #138
|
|
#226#128#185, // #139
|
|
#197#146, // #140
|
|
'', // #141
|
|
'', // #142
|
|
'', // #143
|
|
'', // #144
|
|
#226#128#152, // #145
|
|
#226#128#153, // #146
|
|
#226#128#156, // #147
|
|
#226#128#157, // #148
|
|
#226#128#162, // #149
|
|
#226#128#147, // #150
|
|
#226#128#148, // #151
|
|
#203#156, // #152
|
|
#226#132#162, // #153
|
|
'', // #154
|
|
#226#128#186, // #155
|
|
#197#147, // #156
|
|
'', // #157
|
|
'', // #158
|
|
#197#184, // #159
|
|
#194#160, // #160
|
|
#194#161, // #161
|
|
#194#162, // #162
|
|
#194#163, // #163
|
|
#194#164, // #164
|
|
#194#165, // #165
|
|
#194#166, // #166
|
|
#194#167, // #167
|
|
#194#168, // #168
|
|
#194#169, // #169
|
|
#194#170, // #170
|
|
#194#171, // #171
|
|
#194#172, // #172
|
|
#194#173, // #173
|
|
#194#174, // #174
|
|
#194#175, // #175
|
|
#194#176, // #176
|
|
#194#177, // #177
|
|
#194#178, // #178
|
|
#194#179, // #179
|
|
#194#180, // #180
|
|
#194#181, // #181
|
|
#194#182, // #182
|
|
#194#183, // #183
|
|
#194#184, // #184
|
|
#194#185, // #185
|
|
#194#186, // #186
|
|
#194#187, // #187
|
|
#194#188, // #188
|
|
#194#189, // #189
|
|
#194#190, // #190
|
|
#194#191, // #191
|
|
#195#128, // #192
|
|
#195#129, // #193
|
|
#195#130, // #194
|
|
#196#130, // #195
|
|
#195#132, // #196
|
|
#195#133, // #197
|
|
#195#134, // #198
|
|
#195#135, // #199
|
|
#195#136, // #200
|
|
#195#137, // #201
|
|
#195#138, // #202
|
|
#195#139, // #203
|
|
#204#128, // #204
|
|
#195#141, // #205
|
|
#195#142, // #206
|
|
#195#143, // #207
|
|
#196#144, // #208
|
|
#195#145, // #209
|
|
#204#137, // #210
|
|
#195#147, // #211
|
|
#195#148, // #212
|
|
#198#160, // #213
|
|
#195#150, // #214
|
|
#195#151, // #215
|
|
#195#152, // #216
|
|
#195#153, // #217
|
|
#195#154, // #218
|
|
#195#155, // #219
|
|
#195#156, // #220
|
|
#198#175, // #221
|
|
#204#131, // #222
|
|
#195#159, // #223
|
|
#195#160, // #224
|
|
#195#161, // #225
|
|
#195#162, // #226
|
|
#196#131, // #227
|
|
#195#164, // #228
|
|
#195#165, // #229
|
|
#195#166, // #230
|
|
#195#167, // #231
|
|
#195#168, // #232
|
|
#195#169, // #233
|
|
#195#170, // #234
|
|
#195#171, // #235
|
|
#204#129, // #236
|
|
#195#173, // #237
|
|
#195#174, // #238
|
|
#195#175, // #239
|
|
#196#145, // #240
|
|
#195#177, // #241
|
|
#204#163, // #242
|
|
#195#179, // #243
|
|
#195#180, // #244
|
|
#198#161, // #245
|
|
#195#182, // #246
|
|
#195#183, // #247
|
|
#195#184, // #248
|
|
#195#185, // #249
|
|
#195#186, // #250
|
|
#195#187, // #251
|
|
#195#188, // #252
|
|
#198#176, // #253
|
|
#226#130#171, // #254
|
|
#195#191 // #255
|
|
);
|
|
|
|
ArrayCP437ToUTF8 : TCharToUTF8Table = (
|
|
#0, // #0
|
|
#1, // #1
|
|
#2, // #2
|
|
#3, // #3
|
|
#4, // #4
|
|
#5, // #5
|
|
#6, // #6
|
|
#7, // #7
|
|
#8, // #8
|
|
#9, // #9
|
|
#10, // #10
|
|
#11, // #11
|
|
#12, // #12
|
|
#13, // #13
|
|
#14, // #14
|
|
#15, // #15
|
|
#16, // #16
|
|
#17, // #17
|
|
#18, // #18
|
|
#19, // #19
|
|
#20, // #20
|
|
#21, // #21
|
|
#22, // #22
|
|
#23, // #23
|
|
#24, // #24
|
|
#25, // #25
|
|
#26, // #26
|
|
#27, // #27
|
|
#28, // #28
|
|
#29, // #29
|
|
#30, // #30
|
|
#31, // #31
|
|
' ', // ' '
|
|
'!', // '!'
|
|
'"', // '"'
|
|
'#', // '#'
|
|
'$', // '$'
|
|
'%', // '%'
|
|
'&', // '&'
|
|
'''', // ''''
|
|
'(', // '('
|
|
')', // ')'
|
|
'*', // '*'
|
|
'+', // '+'
|
|
',', // ','
|
|
'-', // '-'
|
|
'.', // '.'
|
|
'/', // '/'
|
|
'0', // '0'
|
|
'1', // '1'
|
|
'2', // '2'
|
|
'3', // '3'
|
|
'4', // '4'
|
|
'5', // '5'
|
|
'6', // '6'
|
|
'7', // '7'
|
|
'8', // '8'
|
|
'9', // '9'
|
|
':', // ':'
|
|
';', // ';'
|
|
'<', // '<'
|
|
'=', // '='
|
|
'>', // '>'
|
|
'?', // '?'
|
|
'@', // '@'
|
|
'A', // 'A'
|
|
'B', // 'B'
|
|
'C', // 'C'
|
|
'D', // 'D'
|
|
'E', // 'E'
|
|
'F', // 'F'
|
|
'G', // 'G'
|
|
'H', // 'H'
|
|
'I', // 'I'
|
|
'J', // 'J'
|
|
'K', // 'K'
|
|
'L', // 'L'
|
|
'M', // 'M'
|
|
'N', // 'N'
|
|
'O', // 'O'
|
|
'P', // 'P'
|
|
'Q', // 'Q'
|
|
'R', // 'R'
|
|
'S', // 'S'
|
|
'T', // 'T'
|
|
'U', // 'U'
|
|
'V', // 'V'
|
|
'W', // 'W'
|
|
'X', // 'X'
|
|
'Y', // 'Y'
|
|
'Z', // 'Z'
|
|
'[', // '['
|
|
'\', // '\'
|
|
']', // ']'
|
|
'^', // '^'
|
|
'_', // '_'
|
|
'`', // '`'
|
|
'a', // 'a'
|
|
'b', // 'b'
|
|
'c', // 'c'
|
|
'd', // 'd'
|
|
'e', // 'e'
|
|
'f', // 'f'
|
|
'g', // 'g'
|
|
'h', // 'h'
|
|
'i', // 'i'
|
|
'j', // 'j'
|
|
'k', // 'k'
|
|
'l', // 'l'
|
|
'm', // 'm'
|
|
'n', // 'n'
|
|
'o', // 'o'
|
|
'p', // 'p'
|
|
'q', // 'q'
|
|
'r', // 'r'
|
|
's', // 's'
|
|
't', // 't'
|
|
'u', // 'u'
|
|
'v', // 'v'
|
|
'w', // 'w'
|
|
'x', // 'x'
|
|
'y', // 'y'
|
|
'z', // 'z'
|
|
'{', // '{'
|
|
'|', // '|'
|
|
'}', // '}'
|
|
'~', // '~'
|
|
#127, // #127
|
|
#195#135, // #128
|
|
#195#188, // #129
|
|
#195#169, // #130
|
|
#195#162, // #131
|
|
#195#164, // #132
|
|
#195#160, // #133
|
|
#195#165, // #134
|
|
#195#167, // #135
|
|
#195#170, // #136
|
|
#195#171, // #137
|
|
#195#168, // #138
|
|
#195#175, // #139
|
|
#195#174, // #140
|
|
#195#172, // #141
|
|
#195#132, // #142
|
|
#195#133, // #143
|
|
#195#137, // #144
|
|
#195#166, // #145
|
|
#195#134, // #146
|
|
#195#180, // #147
|
|
#195#182, // #148
|
|
#195#178, // #149
|
|
#195#187, // #150
|
|
#195#185, // #151
|
|
#195#191, // #152
|
|
#195#150, // #153
|
|
#195#156, // #154
|
|
#194#162, // #155
|
|
#194#163, // #156
|
|
#194#165, // #157
|
|
#226#130#167, // #158
|
|
#198#146, // #159
|
|
#195#161, // #160
|
|
#195#173, // #161
|
|
#195#179, // #162
|
|
#195#186, // #163
|
|
#195#177, // #164
|
|
#195#145, // #165
|
|
#194#170, // #166
|
|
#194#186, // #167
|
|
#194#191, // #168
|
|
#226#140#144, // #169
|
|
#194#172, // #170
|
|
#194#189, // #171
|
|
#194#188, // #172
|
|
#194#161, // #173
|
|
#194#171, // #174
|
|
#194#187, // #175
|
|
#226#150#145, // #176
|
|
#226#150#146, // #177
|
|
#226#150#147, // #178
|
|
#226#148#130, // #179
|
|
#226#148#164, // #180
|
|
#226#149#161, // #181
|
|
#226#149#162, // #182
|
|
#226#149#150, // #183
|
|
#226#149#149, // #184
|
|
#226#149#163, // #185
|
|
#226#149#145, // #186
|
|
#226#149#151, // #187
|
|
#226#149#157, // #188
|
|
#226#149#156, // #189
|
|
#226#149#155, // #190
|
|
#226#148#144, // #191
|
|
#226#148#148, // #192
|
|
#226#148#180, // #193
|
|
#226#148#172, // #194
|
|
#226#148#156, // #195
|
|
#226#148#128, // #196
|
|
#226#148#188, // #197
|
|
#226#149#158, // #198
|
|
#226#149#159, // #199
|
|
#226#149#154, // #200
|
|
#226#149#148, // #201
|
|
#226#149#169, // #202
|
|
#226#149#166, // #203
|
|
#226#149#160, // #204
|
|
#226#149#144, // #205
|
|
#226#149#172, // #206
|
|
#226#149#167, // #207
|
|
#226#149#168, // #208
|
|
#226#149#164, // #209
|
|
#226#149#165, // #210
|
|
#226#149#153, // #211
|
|
#226#149#152, // #212
|
|
#226#149#146, // #213
|
|
#226#149#147, // #214
|
|
#226#149#171, // #215
|
|
#226#149#170, // #216
|
|
#226#148#152, // #217
|
|
#226#148#140, // #218
|
|
#226#150#136, // #219
|
|
#226#150#132, // #220
|
|
#226#150#140, // #221
|
|
#226#150#144, // #222
|
|
#226#150#128, // #223
|
|
#206#177, // #224
|
|
#195#159, // #225
|
|
#206#147, // #226
|
|
#207#128, // #227
|
|
#206#163, // #228
|
|
#207#131, // #229
|
|
#194#181, // #230
|
|
#207#132, // #231
|
|
#206#166, // #232
|
|
#206#152, // #233
|
|
#206#169, // #234
|
|
#206#180, // #235
|
|
#226#136#158, // #236
|
|
#207#134, // #237
|
|
#206#181, // #238
|
|
#226#136#169, // #239
|
|
#226#137#161, // #240
|
|
#194#177, // #241
|
|
#226#137#165, // #242
|
|
#226#137#164, // #243
|
|
#226#140#160, // #244
|
|
#226#140#161, // #245
|
|
#195#183, // #246
|
|
#226#137#136, // #247
|
|
#194#176, // #248
|
|
#226#136#153, // #249
|
|
#194#183, // #250
|
|
#226#136#154, // #251
|
|
#226#129#191, // #252
|
|
#194#178, // #253
|
|
#226#150#160, // #254
|
|
#194#160 // #255
|
|
);
|
|
|
|
ArrayCP850ToUTF8 : TCharToUTF8Table = (
|
|
#0, // #0
|
|
#1, // #1
|
|
#2, // #2
|
|
#3, // #3
|
|
#4, // #4
|
|
#5, // #5
|
|
#6, // #6
|
|
#7, // #7
|
|
#8, // #8
|
|
#9, // #9
|
|
#10, // #10
|
|
#11, // #11
|
|
#12, // #12
|
|
#13, // #13
|
|
#14, // #14
|
|
#15, // #15
|
|
#16, // #16
|
|
#17, // #17
|
|
#18, // #18
|
|
#19, // #19
|
|
#20, // #20
|
|
#21, // #21
|
|
#22, // #22
|
|
#23, // #23
|
|
#24, // #24
|
|
#25, // #25
|
|
#26, // #26
|
|
#27, // #27
|
|
#28, // #28
|
|
#29, // #29
|
|
#30, // #30
|
|
#31, // #31
|
|
' ', // ' '
|
|
'!', // '!'
|
|
'"', // '"'
|
|
'#', // '#'
|
|
'$', // '$'
|
|
'%', // '%'
|
|
'&', // '&'
|
|
'''', // ''''
|
|
'(', // '('
|
|
')', // ')'
|
|
'*', // '*'
|
|
'+', // '+'
|
|
',', // ','
|
|
'-', // '-'
|
|
'.', // '.'
|
|
'/', // '/'
|
|
'0', // '0'
|
|
'1', // '1'
|
|
'2', // '2'
|
|
'3', // '3'
|
|
'4', // '4'
|
|
'5', // '5'
|
|
'6', // '6'
|
|
'7', // '7'
|
|
'8', // '8'
|
|
'9', // '9'
|
|
':', // ':'
|
|
';', // ';'
|
|
'<', // '<'
|
|
'=', // '='
|
|
'>', // '>'
|
|
'?', // '?'
|
|
'@', // '@'
|
|
'A', // 'A'
|
|
'B', // 'B'
|
|
'C', // 'C'
|
|
'D', // 'D'
|
|
'E', // 'E'
|
|
'F', // 'F'
|
|
'G', // 'G'
|
|
'H', // 'H'
|
|
'I', // 'I'
|
|
'J', // 'J'
|
|
'K', // 'K'
|
|
'L', // 'L'
|
|
'M', // 'M'
|
|
'N', // 'N'
|
|
'O', // 'O'
|
|
'P', // 'P'
|
|
'Q', // 'Q'
|
|
'R', // 'R'
|
|
'S', // 'S'
|
|
'T', // 'T'
|
|
'U', // 'U'
|
|
'V', // 'V'
|
|
'W', // 'W'
|
|
'X', // 'X'
|
|
'Y', // 'Y'
|
|
'Z', // 'Z'
|
|
'[', // '['
|
|
'\', // '\'
|
|
']', // ']'
|
|
'^', // '^'
|
|
'_', // '_'
|
|
'`', // '`'
|
|
'a', // 'a'
|
|
'b', // 'b'
|
|
'c', // 'c'
|
|
'd', // 'd'
|
|
'e', // 'e'
|
|
'f', // 'f'
|
|
'g', // 'g'
|
|
'h', // 'h'
|
|
'i', // 'i'
|
|
'j', // 'j'
|
|
'k', // 'k'
|
|
'l', // 'l'
|
|
'm', // 'm'
|
|
'n', // 'n'
|
|
'o', // 'o'
|
|
'p', // 'p'
|
|
'q', // 'q'
|
|
'r', // 'r'
|
|
's', // 's'
|
|
't', // 't'
|
|
'u', // 'u'
|
|
'v', // 'v'
|
|
'w', // 'w'
|
|
'x', // 'x'
|
|
'y', // 'y'
|
|
'z', // 'z'
|
|
'{', // '{'
|
|
'|', // '|'
|
|
'}', // '}'
|
|
'~', // '~'
|
|
#127, // #127
|
|
#195#135, // #128
|
|
#195#188, // #129
|
|
#195#169, // #130
|
|
#195#162, // #131
|
|
#195#164, // #132
|
|
#195#160, // #133
|
|
#195#165, // #134
|
|
#195#167, // #135
|
|
#195#170, // #136
|
|
#195#171, // #137
|
|
#195#168, // #138
|
|
#195#175, // #139
|
|
#195#174, // #140
|
|
#195#172, // #141
|
|
#195#132, // #142
|
|
#195#133, // #143
|
|
#195#137, // #144
|
|
#195#166, // #145
|
|
#195#134, // #146
|
|
#195#180, // #147
|
|
#195#182, // #148
|
|
#195#178, // #149
|
|
#195#187, // #150
|
|
#195#185, // #151
|
|
#195#191, // #152
|
|
#195#150, // #153
|
|
#195#156, // #154
|
|
#195#184, // #155
|
|
#194#163, // #156
|
|
#195#152, // #157
|
|
#195#151, // #158
|
|
#198#146, // #159
|
|
#195#161, // #160
|
|
#195#173, // #161
|
|
#195#179, // #162
|
|
#195#186, // #163
|
|
#195#177, // #164
|
|
#195#145, // #165
|
|
#194#170, // #166
|
|
#194#186, // #167
|
|
#194#191, // #168
|
|
#194#174, // #169
|
|
#194#172, // #170
|
|
#194#189, // #171
|
|
#194#188, // #172
|
|
#194#161, // #173
|
|
#194#171, // #174
|
|
#194#187, // #175
|
|
#226#150#145, // #176
|
|
#226#150#146, // #177
|
|
#226#150#147, // #178
|
|
#226#148#130, // #179
|
|
#226#148#164, // #180
|
|
#195#129, // #181
|
|
#195#130, // #182
|
|
#195#128, // #183
|
|
#194#169, // #184
|
|
#226#149#163, // #185
|
|
#226#149#145, // #186
|
|
#226#149#151, // #187
|
|
#226#149#157, // #188
|
|
#194#162, // #189
|
|
#194#165, // #190
|
|
#226#148#144, // #191
|
|
#226#148#148, // #192
|
|
#226#148#180, // #193
|
|
#226#148#172, // #194
|
|
#226#148#156, // #195
|
|
#226#148#128, // #196
|
|
#226#148#188, // #197
|
|
#195#163, // #198
|
|
#195#131, // #199
|
|
#226#149#154, // #200
|
|
#226#149#148, // #201
|
|
#226#149#169, // #202
|
|
#226#149#166, // #203
|
|
#226#149#160, // #204
|
|
#226#149#144, // #205
|
|
#226#149#172, // #206
|
|
#194#164, // #207
|
|
#195#176, // #208
|
|
#195#144, // #209
|
|
#195#138, // #210
|
|
#195#139, // #211
|
|
#195#136, // #212
|
|
#196#177, // #213
|
|
#195#141, // #214
|
|
#195#142, // #215
|
|
#195#143, // #216
|
|
#226#148#152, // #217
|
|
#226#148#140, // #218
|
|
#226#150#136, // #219
|
|
#226#150#132, // #220
|
|
#194#166, // #221
|
|
#195#140, // #222
|
|
#226#150#128, // #223
|
|
#195#147, // #224
|
|
#195#159, // #225
|
|
#195#148, // #226
|
|
#195#146, // #227
|
|
#195#181, // #228
|
|
#195#149, // #229
|
|
#194#181, // #230
|
|
#195#190, // #231
|
|
#195#158, // #232
|
|
#195#154, // #233
|
|
#195#155, // #234
|
|
#195#153, // #235
|
|
#195#189, // #236
|
|
#195#157, // #237
|
|
#194#175, // #238
|
|
#194#180, // #239
|
|
#194#173, // #240
|
|
#194#177, // #241
|
|
#226#128#151, // #242
|
|
#194#190, // #243
|
|
#194#182, // #244
|
|
#194#167, // #245
|
|
#195#183, // #246
|
|
#194#184, // #247
|
|
#194#176, // #248
|
|
#194#168, // #249
|
|
#194#183, // #250
|
|
#194#185, // #251
|
|
#194#179, // #252
|
|
#194#178, // #253
|
|
#226#150#160, // #254
|
|
#194#160 // #255
|
|
);
|
|
|
|
// ftp://ftp.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/PC/CP852.TXT
|
|
ArrayCP852ToUTF8 : TCharToUTF8Table = (
|
|
#0, // #0
|
|
#1, // #1
|
|
#2, // #2
|
|
#3, // #3
|
|
#4, // #4
|
|
#5, // #5
|
|
#6, // #6
|
|
#7, // #7
|
|
#8, // #8
|
|
#9, // #9
|
|
#10, // #10
|
|
#11, // #11
|
|
#12, // #12
|
|
#13, // #13
|
|
#14, // #14
|
|
#15, // #15
|
|
#16, // #16
|
|
#17, // #17
|
|
#18, // #18
|
|
#19, // #19
|
|
#20, // #20
|
|
#21, // #21
|
|
#22, // #22
|
|
#23, // #23
|
|
#24, // #24
|
|
#25, // #25
|
|
#26, // #26
|
|
#27, // #27
|
|
#28, // #28
|
|
#29, // #29
|
|
#30, // #30
|
|
#31, // #31
|
|
' ', // ' '
|
|
'!', // '!'
|
|
'"', // '"'
|
|
'#', // '#'
|
|
'$', // '$'
|
|
'%', // '%'
|
|
'&', // '&'
|
|
'''', // ''''
|
|
'(', // '('
|
|
')', // ')'
|
|
'*', // '*'
|
|
'+', // '+'
|
|
',', // ','
|
|
'-', // '-'
|
|
'.', // '.'
|
|
'/', // '/'
|
|
'0', // '0'
|
|
'1', // '1'
|
|
'2', // '2'
|
|
'3', // '3'
|
|
'4', // '4'
|
|
'5', // '5'
|
|
'6', // '6'
|
|
'7', // '7'
|
|
'8', // '8'
|
|
'9', // '9'
|
|
':', // ':'
|
|
';', // ';'
|
|
'<', // '<'
|
|
'=', // '='
|
|
'>', // '>'
|
|
'?', // '?'
|
|
'@', // '@'
|
|
'A', // 'A'
|
|
'B', // 'B'
|
|
'C', // 'C'
|
|
'D', // 'D'
|
|
'E', // 'E'
|
|
'F', // 'F'
|
|
'G', // 'G'
|
|
'H', // 'H'
|
|
'I', // 'I'
|
|
'J', // 'J'
|
|
'K', // 'K'
|
|
'L', // 'L'
|
|
'M', // 'M'
|
|
'N', // 'N'
|
|
'O', // 'O'
|
|
'P', // 'P'
|
|
'Q', // 'Q'
|
|
'R', // 'R'
|
|
'S', // 'S'
|
|
'T', // 'T'
|
|
'U', // 'U'
|
|
'V', // 'V'
|
|
'W', // 'W'
|
|
'X', // 'X'
|
|
'Y', // 'Y'
|
|
'Z', // 'Z'
|
|
'[', // '['
|
|
'\', // '\'
|
|
']', // ']'
|
|
'^', // '^'
|
|
'_', // '_'
|
|
'`', // '`'
|
|
'a', // 'a'
|
|
'b', // 'b'
|
|
'c', // 'c'
|
|
'd', // 'd'
|
|
'e', // 'e'
|
|
'f', // 'f'
|
|
'g', // 'g'
|
|
'h', // 'h'
|
|
'i', // 'i'
|
|
'j', // 'j'
|
|
'k', // 'k'
|
|
'l', // 'l'
|
|
'm', // 'm'
|
|
'n', // 'n'
|
|
'o', // 'o'
|
|
'p', // 'p'
|
|
'q', // 'q'
|
|
'r', // 'r'
|
|
's', // 's'
|
|
't', // 't'
|
|
'u', // 'u'
|
|
'v', // 'v'
|
|
'w', // 'w'
|
|
'x', // 'x'
|
|
'y', // 'y'
|
|
'z', // 'z'
|
|
'{', // '{'
|
|
'|', // '|'
|
|
'}', // '}'
|
|
'~', // '~'
|
|
#127, // #127
|
|
#$c3#$87, // LATIN CAPITAL LETTER C WITH CEDILLA
|
|
#$c3#$bc, // LATIN SMALL LETTER U WITH DIAERESIS
|
|
#$c3#$a9, // LATIN SMALL LETTER E WITH ACUTE
|
|
#$c3#$a2, // LATIN SMALL LETTER A WITH CIRCUMFLEX
|
|
#$c3#$a4, // LATIN SMALL LETTER A WITH DIAERESIS
|
|
#$c5#$af, // LATIN SMALL LETTER U WITH RING ABOVE
|
|
#$c4#$87, // LATIN SMALL LETTER C WITH ACUTE
|
|
#$c3#$a7, // LATIN SMALL LETTER C WITH CEDILLA
|
|
#$c5#$82, // LATIN SMALL LETTER L WITH STROKE
|
|
#$c3#$ab, // LATIN SMALL LETTER E WITH DIAERESIS
|
|
#$c5#$90, // LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
|
|
#$c5#$91, // LATIN SMALL LETTER O WITH DOUBLE ACUTE
|
|
#$c3#$ae, // LATIN SMALL LETTER I WITH CIRCUMFLEX
|
|
#$c5#$b9, // LATIN CAPITAL LETTER Z WITH ACUTE
|
|
#$c3#$84, // LATIN CAPITAL LETTER A WITH DIAERESIS
|
|
#$c3#$84, // LATIN CAPITAL LETTER C WITH ACUTE
|
|
#$c3#$89, // LATIN CAPITAL LETTER E WITH ACUTE
|
|
#$c4#$b9, // LATIN CAPITAL LETTER L WITH ACUTE
|
|
#$c4#$ba, // LATIN SMALL LETTER L WITH ACUTE
|
|
#$c3#$b4, // LATIN SMALL LETTER O WITH CIRCUMFLEX
|
|
#$c3#$b6, // LATIN SMALL LETTER O WITH DIAERESIS
|
|
#$c4#$bd, // LATIN CAPITAL LETTER L WITH CARON
|
|
#$c4#$be, // LATIN SMALL LETTER L WITH CARON
|
|
#$c5#$9a, // LATIN CAPITAL LETTER S WITH ACUTE
|
|
#$c5#$9b, // LATIN SMALL LETTER S WITH ACUTE
|
|
#$c3#$96, // LATIN CAPITAL LETTER O WITH DIAERESIS
|
|
#$c3#$9c, // LATIN CAPITAL LETTER U WITH DIAERESIS
|
|
#$c5#$a4, // LATIN CAPITAL LETTER T WITH CARON
|
|
#$c5#$a5, // LATIN SMALL LETTER T WITH CARON
|
|
#$c5#$81, // LATIN CAPITAL LETTER L WITH STROKE
|
|
#$c3#$97, // MULTIPLICATION SIGN
|
|
#$c4#$8d, // LATIN SMALL LETTER C WITH CARON
|
|
#$c3#$a1, // LATIN SMALL LETTER A WITH ACUTE
|
|
#$c3#$ad, // LATIN SMALL LETTER I WITH ACUTE
|
|
#$c3#$b3, // LATIN SMALL LETTER O WITH ACUTE
|
|
#$c3#$ba, // LATIN SMALL LETTER U WITH ACUTE
|
|
#$c4#$84, // LATIN CAPITAL LETTER A WITH OGONEK
|
|
#$c4#$85, // LATIN SMALL LETTER A WITH OGONEK
|
|
#$c5#$bd, // LATIN CAPITAL LETTER Z WITH CARON
|
|
#$c5#$be, // LATIN SMALL LETTER Z WITH CARON
|
|
#$c4#$98, // LATIN CAPITAL LETTER E WITH OGONEK
|
|
#$c4#$99, // LATIN SMALL LETTER E WITH OGONEK
|
|
#$c2#$ac, // NOT SIGN
|
|
#$c5#$ba, // LATIN SMALL LETTER Z WITH ACUTE
|
|
#$c4#$8c, // LATIN CAPITAL LETTER C WITH CARON
|
|
#$c5#$9f, // LATIN SMALL LETTER S WITH CEDILLA
|
|
#$c2#$ab, // LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
|
|
#$c2#$bb, // RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
|
|
#$e2#$96#$91, // LIGHT SHADE
|
|
#$e2#$96#$92, // MEDIUM SHADE
|
|
#$e2#$96#$93, // DARK SHADE
|
|
#$e2#$96#$82, // BOX DRAWINGS LIGHT VERTICAL
|
|
#$e2#$96#$a4, // BOX DRAWINGS LIGHT VERTICAL AND LEFT
|
|
#$c3#$81, // LATIN CAPITAL LETTER A WITH ACUTE
|
|
#$c3#$82, // LATIN CAPITAL LETTER A WITH CIRCUMFLEX
|
|
#$c4#$9a, // LATIN CAPITAL LETTER E WITH CARON
|
|
#$c5#$9e, // LATIN CAPITAL LETTER S WITH CEDILLA
|
|
#$e2#$95#$a3, // BOX DRAWINGS DOUBLE VERTICAL AND LEFT
|
|
#$e2#$95#$91, // BOX DRAWINGS DOUBLE VERTICAL
|
|
#$e2#$95#$97, // BOX DRAWINGS DOUBLE DOWN AND LEFT
|
|
#$e2#$95#$9d, // BOX DRAWINGS DOUBLE UP AND LEFT
|
|
#$c5#$bb, // LATIN CAPITAL LETTER Z WITH DOT ABOVE
|
|
#$c5#$bc, // LATIN SMALL LETTER Z WITH DOT ABOVE
|
|
#$e2#$94#$90, // BOX DRAWINGS LIGHT DOWN AND LEFT
|
|
#$e2#$94#$94, // BOX DRAWINGS LIGHT UP AND RIGHT
|
|
#$e2#$94#$b4, // BOX DRAWINGS LIGHT UP AND HORIZONTAL
|
|
#$e2#$94#$ac, // BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
|
|
#$e2#$94#$9c, // BOX DRAWINGS LIGHT VERTICAL AND RIGHT
|
|
#$e2#$94#$80, // BOX DRAWINGS LIGHT HORIZONTAL
|
|
#$e2#$94#$bc, // BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
|
|
#$c4#$82, // LATIN CAPITAL LETTER A WITH BREVE
|
|
#$c4#$83, // LATIN SMALL LETTER A WITH BREVE
|
|
#$e2#$94#$9a, // BOX DRAWINGS DOUBLE UP AND RIGHT
|
|
#$e2#$94#$94, // BOX DRAWINGS DOUBLE DOWN AND RIGHT
|
|
#$e2#$94#$a9, // BOX DRAWINGS DOUBLE UP AND HORIZONTAL
|
|
#$e2#$94#$a6, // BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
|
|
#$e2#$94#$a0, // BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
|
|
#$e2#$94#$90, // BOX DRAWINGS DOUBLE HORIZONTAL
|
|
#$e2#$94#$ac, // BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
|
|
#$c4#$a4, // CURRENCY SIGN
|
|
#$c4#$91, // LATIN SMALL LETTER D WITH STROKE
|
|
#$c4#$90, // LATIN CAPITAL LETTER D WITH STROKE
|
|
#$c4#$8e, // LATIN CAPITAL LETTER D WITH CARON
|
|
#$c3#$8b, // LATIN CAPITAL LETTER E WITH DIAERESIS
|
|
#$c4#$8f, // LATIN SMALL LETTER D WITH CARON
|
|
#$c5#$87, // LATIN CAPITAL LETTER N WITH CARON
|
|
#$c3#$8d, // LATIN CAPITAL LETTER I WITH ACUTE
|
|
#$c3#$8e, // LATIN CAPITAL LETTER I WITH CIRCUMFLEX
|
|
#$c4#$9b, // LATIN SMALL LETTER E WITH CARON
|
|
#$e2#$94#$98, // BOX DRAWINGS LIGHT UP AND LEFT
|
|
#$e2#$94#$8c, // BOX DRAWINGS LIGHT DOWN AND RIGHT
|
|
#$e2#$96#$88, // FULL BLOCK
|
|
#$e2#$96#$84, // LOWER HALF BLOCK
|
|
#$c5#$a2, // LATIN CAPITAL LETTER T WITH CEDILLA
|
|
#$c5#$ae, // LATIN CAPITAL LETTER U WITH RING ABOVE
|
|
#$e2#$96#$80, // UPPER HALF BLOCK
|
|
#$c3#$93, // LATIN CAPITAL LETTER O WITH ACUTE
|
|
#$c3#$9f, // LATIN SMALL LETTER SHARP S
|
|
#$c3#$94, // LATIN CAPITAL LETTER O WITH CIRCUMFLEX
|
|
#$c5#$83, // LATIN CAPITAL LETTER N WITH ACUTE
|
|
#$c5#$84, // LATIN SMALL LETTER N WITH ACUTE
|
|
#$c5#$88, // LATIN SMALL LETTER N WITH CARON
|
|
#$c5#$a0, // LATIN CAPITAL LETTER S WITH CARON
|
|
#$c5#$a1, // LATIN SMALL LETTER S WITH CARON
|
|
#$c5#$94, // LATIN CAPITAL LETTER R WITH ACUTE
|
|
#$c3#$9a, // LATIN CAPITAL LETTER U WITH ACUTE
|
|
#$c5#$95, // LATIN SMALL LETTER R WITH ACUTE
|
|
#$c5#$b0, // LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
|
|
#$c3#$bd, // LATIN SMALL LETTER Y WITH ACUTE
|
|
#$c3#$9d, // LATIN CAPITAL LETTER Y WITH ACUTE
|
|
#$c5#$a3, // LATIN SMALL LETTER T WITH CEDILLA
|
|
#$c2#$b4, // ACUTE ACCENT
|
|
#$c2#$ad, // SOFT HYPHEN
|
|
#$cb#$9d, // DOUBLE ACUTE ACCENT
|
|
#$cb#$9b, // OGONEK
|
|
#$cb#$87, // CARON
|
|
#$cb#$98, // BREVE
|
|
#$c2#$a7, // SECTION SIGN
|
|
#$c3#$b7, // DIVISION SIGN
|
|
#$c2#$b8, // CEDILLA
|
|
#$c2#$b0, // DEGREE SIGN
|
|
#$c2#$a8, // DIAERESIS
|
|
#$cb#$99, // DOT ABOVE
|
|
#$c5#$b1, // LATIN SMALL LETTER U WITH DOUBLE ACUTE
|
|
#$c5#$98, // LATIN CAPITAL LETTER R WITH CARON
|
|
#$c5#$99, // LATIN SMALL LETTER R WITH CARON
|
|
#$e2#$96#$a0, // BLACK SQUARE
|
|
#$c2#$a0 // NO-BREAK SPACE
|
|
);
|
|
|
|
ArrayCP866ToUTF8 : TCharToUTF8Table = (
|
|
#0, //#0
|
|
#1, //#1
|
|
#2, //#2
|
|
#3, //#3
|
|
#4, //#4
|
|
#5, //#5
|
|
#6, //#6
|
|
#7, //#7
|
|
#8, //#8
|
|
#9, //#9
|
|
#10, //#10
|
|
#11, //#11
|
|
#12, //#12
|
|
#13, //#13
|
|
#14, //#14
|
|
#15, //#15
|
|
#16, //#16
|
|
#17, //#17
|
|
#18, //#18
|
|
#19, //#19
|
|
#20, //#20
|
|
#21, //#21
|
|
#22, //#22
|
|
#23, //#23
|
|
#24, //#24
|
|
#25, //#25
|
|
#26, //#26
|
|
#27, //#27
|
|
#28, //#28
|
|
#29, //#29
|
|
#30, //#30
|
|
#31, //#31
|
|
#32, //#32
|
|
#33, //#33
|
|
#34, //#34
|
|
#35, //#35
|
|
#36, //#36
|
|
#37, //#37
|
|
#38, //#38
|
|
#39, //#39
|
|
#40, //#40
|
|
#41, //#41
|
|
#42, //#42
|
|
#43, //#43
|
|
#44, //#44
|
|
#45, //#45
|
|
#46, //#46
|
|
#47, //#47
|
|
#48, //#48
|
|
#49, //#49
|
|
#50, //#50
|
|
#51, //#51
|
|
#52, //#52
|
|
#53, //#53
|
|
#54, //#54
|
|
#55, //#55
|
|
#56, //#56
|
|
#57, //#57
|
|
#58, //#58
|
|
#59, //#59
|
|
#60, //#60
|
|
#61, //#61
|
|
#62, //#62
|
|
#63, //#63
|
|
#64, //#64
|
|
#65, //#65
|
|
#66, //#66
|
|
#67, //#67
|
|
#68, //#68
|
|
#69, //#69
|
|
#70, //#70
|
|
#71, //#71
|
|
#72, //#72
|
|
#73, //#73
|
|
#74, //#74
|
|
#75, //#75
|
|
#76, //#76
|
|
#77, //#77
|
|
#78, //#78
|
|
#79, //#79
|
|
#80, //#80
|
|
#81, //#81
|
|
#82, //#82
|
|
#83, //#83
|
|
#84, //#84
|
|
#85, //#85
|
|
#86, //#86
|
|
#87, //#87
|
|
#88, //#88
|
|
#89, //#89
|
|
#90, //#90
|
|
#91, //#91
|
|
#92, //#92
|
|
#93, //#93
|
|
#94, //#94
|
|
#95, //#95
|
|
#96, //#96
|
|
#97, //#97
|
|
#98, //#98
|
|
#99, //#99
|
|
#100, //#100
|
|
#101, //#101
|
|
#102, //#102
|
|
#103, //#103
|
|
#104, //#104
|
|
#105, //#105
|
|
#106, //#106
|
|
#107, //#107
|
|
#108, //#108
|
|
#109, //#109
|
|
#110, //#110
|
|
#111, //#111
|
|
#112, //#112
|
|
#113, //#113
|
|
#114, //#114
|
|
#115, //#115
|
|
#116, //#116
|
|
#117, //#117
|
|
#118, //#118
|
|
#119, //#119
|
|
#120, //#120
|
|
#121, //#121
|
|
#122, //#122
|
|
#123, //#123
|
|
#124, //#124
|
|
#125, //#125
|
|
#126, //#126
|
|
#127, //#127
|
|
#208#144, //#128
|
|
#208#145, //#129
|
|
#208#146, //#130
|
|
#208#147, //#131
|
|
#208#148, //#132
|
|
#208#149, //#133
|
|
#208#150, //#134
|
|
#208#151, //#135
|
|
#208#152, //#136
|
|
#208#153, //#137
|
|
#208#154, //#138
|
|
#208#155, //#139
|
|
#208#156, //#140
|
|
#208#157, //#141
|
|
#208#158, //#142
|
|
#208#159, //#143
|
|
#208#160, //#144
|
|
#208#161, //#145
|
|
#208#162, //#146
|
|
#208#163, //#147
|
|
#208#164, //#148
|
|
#208#165, //#149
|
|
#208#166, //#150
|
|
#208#167, //#151
|
|
#208#168, //#152
|
|
#208#169, //#153
|
|
#208#170, //#154
|
|
#208#171, //#155
|
|
#208#172, //#156
|
|
#208#173, //#157
|
|
#208#174, //#158
|
|
#208#175, //#159
|
|
#208#176, //#160
|
|
#208#177, //#161
|
|
#208#178, //#162
|
|
#208#179, //#163
|
|
#208#180, //#164
|
|
#208#181, //#165
|
|
#208#182, //#166
|
|
#208#183, //#167
|
|
#208#184, //#168
|
|
#208#185, //#169
|
|
#208#186, //#170
|
|
#208#187, //#171
|
|
#208#188, //#172
|
|
#208#189, //#173
|
|
#208#190, //#174
|
|
#208#191, //#175
|
|
#226#150#145, //#176
|
|
#226#150#146, //#177
|
|
#226#150#147, //#178
|
|
#226#148#130, //#179
|
|
#226#148#164, //#180
|
|
#226#149#161, //#181
|
|
#226#149#162, //#182
|
|
#226#149#150, //#183
|
|
#226#149#149, //#184
|
|
#226#149#163, //#185
|
|
#226#149#145, //#186
|
|
#226#149#151, //#187
|
|
#226#149#157, //#188
|
|
#226#149#156, //#189
|
|
#226#149#155, //#190
|
|
#226#148#144, //#191
|
|
#226#148#148, //#192
|
|
#226#148#180, //#193
|
|
#226#148#172, //#194
|
|
#226#148#156, //#195
|
|
#226#148#128, //#196
|
|
#226#148#188, //#197
|
|
#226#149#158, //#198
|
|
#226#149#159, //#199
|
|
#226#149#154, //#200
|
|
#226#149#148, //#201
|
|
#226#149#169, //#202
|
|
#226#149#166, //#203
|
|
#226#149#160, //#204
|
|
#226#149#144, //#205
|
|
#226#149#172, //#206
|
|
#226#149#167, //#207
|
|
#226#149#168, //#208
|
|
#226#149#164, //#209
|
|
#226#149#165, //#210
|
|
#226#149#153, //#211
|
|
#226#149#152, //#212
|
|
#226#149#146, //#213
|
|
#226#149#147, //#214
|
|
#226#149#171, //#215
|
|
#226#149#170, //#216
|
|
#226#148#152, //#217
|
|
#226#148#140, //#218
|
|
#226#150#136, //#219
|
|
#226#150#132, //#220
|
|
#226#150#140, //#221
|
|
#226#150#144, //#222
|
|
#226#150#128, //#223
|
|
#209#128, //#224
|
|
#209#129, //#225
|
|
#209#130, //#226
|
|
#209#131, //#227
|
|
#209#132, //#228
|
|
#209#133, //#229
|
|
#209#134, //#230
|
|
#209#135, //#231
|
|
#209#136, //#232
|
|
#209#137, //#233
|
|
#209#138, //#234
|
|
#209#139, //#235
|
|
#209#140, //#236
|
|
#209#141, //#237
|
|
#209#142, //#238
|
|
#209#143, //#239
|
|
#208#129, //#240
|
|
#209#145, //#241
|
|
#208#132, //#242
|
|
#209#148, //#243
|
|
#208#135, //#244
|
|
#209#151, //#245
|
|
#208#142, //#246
|
|
#209#158, //#247
|
|
#194#176, //#248
|
|
#226#136#153, //#249
|
|
#194#183, //#250
|
|
#226#136#154, //#251
|
|
#226#132#150, //#252
|
|
#194#164, //#253
|
|
#226#150#160, //#254
|
|
#194#160 //#255
|
|
);
|
|
|
|
ArrayCP874ToUTF8: TCharToUTF8Table = (
|
|
#0, // #0
|
|
#1, // #1
|
|
#2, // #2
|
|
#3, // #3
|
|
#4, // #4
|
|
#5, // #5
|
|
#6, // #6
|
|
#7, // #7
|
|
#8, // #8
|
|
#9, // #9
|
|
#10, // #10
|
|
#11, // #11
|
|
#12, // #12
|
|
#13, // #13
|
|
#14, // #14
|
|
#15, // #15
|
|
#16, // #16
|
|
#17, // #17
|
|
#18, // #18
|
|
#19, // #19
|
|
#20, // #20
|
|
#21, // #21
|
|
#22, // #22
|
|
#23, // #23
|
|
#24, // #24
|
|
#25, // #25
|
|
#26, // #26
|
|
#27, // #27
|
|
#28, // #28
|
|
#29, // #29
|
|
#30, // #30
|
|
#31, // #31
|
|
' ', // ' '
|
|
'!', // '!'
|
|
'"', // '"'
|
|
'#', // '#'
|
|
'$', // '$'
|
|
'%', // '%'
|
|
'&', // '&'
|
|
'''', // ''''
|
|
'(', // '('
|
|
')', // ')'
|
|
'*', // '*'
|
|
'+', // '+'
|
|
',', // ','
|
|
'-', // '-'
|
|
'.', // '.'
|
|
'/', // '/'
|
|
'0', // '0'
|
|
'1', // '1'
|
|
'2', // '2'
|
|
'3', // '3'
|
|
'4', // '4'
|
|
'5', // '5'
|
|
'6', // '6'
|
|
'7', // '7'
|
|
'8', // '8'
|
|
'9', // '9'
|
|
':', // ':'
|
|
';', // ';'
|
|
'<', // '<'
|
|
'=', // '='
|
|
'>', // '>'
|
|
'?', // '?'
|
|
'@', // '@'
|
|
'A', // 'A'
|
|
'B', // 'B'
|
|
'C', // 'C'
|
|
'D', // 'D'
|
|
'E', // 'E'
|
|
'F', // 'F'
|
|
'G', // 'G'
|
|
'H', // 'H'
|
|
'I', // 'I'
|
|
'J', // 'J'
|
|
'K', // 'K'
|
|
'L', // 'L'
|
|
'M', // 'M'
|
|
'N', // 'N'
|
|
'O', // 'O'
|
|
'P', // 'P'
|
|
'Q', // 'Q'
|
|
'R', // 'R'
|
|
'S', // 'S'
|
|
'T', // 'T'
|
|
'U', // 'U'
|
|
'V', // 'V'
|
|
'W', // 'W'
|
|
'X', // 'X'
|
|
'Y', // 'Y'
|
|
'Z', // 'Z'
|
|
'[', // '['
|
|
'\', // '\'
|
|
']', // ']'
|
|
'^', // '^'
|
|
'_', // '_'
|
|
'`', // '`'
|
|
'a', // 'a'
|
|
'b', // 'b'
|
|
'c', // 'c'
|
|
'd', // 'd'
|
|
'e', // 'e'
|
|
'f', // 'f'
|
|
'g', // 'g'
|
|
'h', // 'h'
|
|
'i', // 'i'
|
|
'j', // 'j'
|
|
'k', // 'k'
|
|
'l', // 'l'
|
|
'm', // 'm'
|
|
'n', // 'n'
|
|
'o', // 'o'
|
|
'p', // 'p'
|
|
'q', // 'q'
|
|
'r', // 'r'
|
|
's', // 's'
|
|
't', // 't'
|
|
'u', // 'u'
|
|
'v', // 'v'
|
|
'w', // 'w'
|
|
'x', // 'x'
|
|
'y', // 'y'
|
|
'z', // 'z'
|
|
'{', // '{'
|
|
'|', // '|'
|
|
'}', // '}'
|
|
'~', // '~'
|
|
#127, // #127
|
|
#226#130#172, // #128
|
|
'', // #129
|
|
'', // #130
|
|
'', // #131
|
|
'', // #132
|
|
#226#128#166, // #133
|
|
'', // #134
|
|
'', // #135
|
|
'', // #136
|
|
'', // #137
|
|
'', // #138
|
|
'', // #139
|
|
'', // #140
|
|
'', // #141
|
|
'', // #142
|
|
'', // #143
|
|
'', // #144
|
|
#226#128#152, // #145
|
|
#226#128#153, // #146
|
|
#226#128#156, // #147
|
|
#226#128#157, // #148
|
|
#226#128#162, // #149
|
|
#226#128#147, // #150
|
|
#226#128#148, // #151
|
|
'', // #152
|
|
'', // #153
|
|
'', // #154
|
|
'', // #155
|
|
'', // #156
|
|
'', // #157
|
|
'', // #158
|
|
'', // #159
|
|
#194#160, // #160
|
|
#224#184#129, // #161
|
|
#224#184#130, // #162
|
|
#224#184#131, // #163
|
|
#224#184#132, // #164
|
|
#224#184#133, // #165
|
|
#224#184#134, // #166
|
|
#224#184#135, // #167
|
|
#224#184#136, // #168
|
|
#224#184#137, // #169
|
|
#224#184#138, // #170
|
|
#224#184#139, // #171
|
|
#224#184#140, // #172
|
|
#224#184#141, // #173
|
|
#224#184#142, // #174
|
|
#224#184#143, // #175
|
|
#224#184#144, // #176
|
|
#224#184#145, // #177
|
|
#224#184#146, // #178
|
|
#224#184#147, // #179
|
|
#224#184#148, // #180
|
|
#224#184#149, // #181
|
|
#224#184#150, // #182
|
|
#224#184#151, // #183
|
|
#224#184#152, // #184
|
|
#224#184#153, // #185
|
|
#224#184#154, // #186
|
|
#224#184#155, // #187
|
|
#224#184#156, // #188
|
|
#224#184#157, // #189
|
|
#224#184#158, // #190
|
|
#224#184#159, // #191
|
|
#224#184#160, // #192
|
|
#224#184#161, // #193
|
|
#224#184#162, // #194
|
|
#224#184#163, // #195
|
|
#224#184#164, // #196
|
|
#224#184#165, // #197
|
|
#224#184#166, // #198
|
|
#224#184#167, // #199
|
|
#224#184#168, // #200
|
|
#224#184#169, // #201
|
|
#224#184#170, // #202
|
|
#224#184#171, // #203
|
|
#224#184#172, // #204
|
|
#224#184#173, // #205
|
|
#224#184#174, // #206
|
|
#224#184#175, // #207
|
|
#224#184#176, // #208
|
|
#224#184#177, // #209
|
|
#224#184#178, // #210
|
|
#224#184#179, // #211
|
|
#224#184#180, // #212
|
|
#224#184#181, // #213
|
|
#224#184#182, // #214
|
|
#224#184#183, // #215
|
|
#224#184#184, // #216
|
|
#224#184#185, // #217
|
|
#224#184#186, // #218
|
|
'', // #219
|
|
'', // #220
|
|
'', // #221
|
|
'', // #222
|
|
#224#184#191, // #223
|
|
#224#185#128, // #224
|
|
#224#185#129, // #225
|
|
#224#185#130, // #226
|
|
#224#185#131, // #227
|
|
#224#185#132, // #228
|
|
#224#185#133, // #229
|
|
#224#185#134, // #230
|
|
#224#185#135, // #231
|
|
#224#185#136, // #232
|
|
#224#185#137, // #233
|
|
#224#185#138, // #234
|
|
#224#185#139, // #235
|
|
#224#185#140, // #236
|
|
#224#185#141, // #237
|
|
#224#185#142, // #238
|
|
#224#185#143, // #239
|
|
#224#185#144, // #240
|
|
#224#185#145, // #241
|
|
#224#185#146, // #242
|
|
#224#185#147, // #243
|
|
#224#185#148, // #244
|
|
#224#185#149, // #245
|
|
#224#185#150, // #246
|
|
#224#185#151, // #247
|
|
#224#185#152, // #248
|
|
#224#185#153, // #249
|
|
#224#185#154, // #250
|
|
#224#185#155, // #251
|
|
'', // #252
|
|
'', // #253
|
|
'', // #254
|
|
'' // #255
|
|
);
|
|
|
|
ArrayKOI8ToUTF8: TCharToUTF8Table = (
|
|
#0, // #0
|
|
#1, // #1
|
|
#2, // #2
|
|
#3, // #3
|
|
#4, // #4
|
|
#5, // #5
|
|
#6, // #6
|
|
#7, // #7
|
|
#8, // #8
|
|
#9, // #9
|
|
#10, // #10
|
|
#11, // #11
|
|
#12, // #12
|
|
#13, // #13
|
|
#14, // #14
|
|
#15, // #15
|
|
#16, // #16
|
|
#17, // #17
|
|
#18, // #18
|
|
#19, // #19
|
|
#20, // #20
|
|
#21, // #21
|
|
#22, // #22
|
|
#23, // #23
|
|
#24, // #24
|
|
#25, // #25
|
|
#26, // #26
|
|
#27, // #27
|
|
#28, // #28
|
|
#29, // #29
|
|
#30, // #30
|
|
#31, // #31
|
|
' ', // ' '
|
|
'!', // '!'
|
|
'"', // '"'
|
|
'#', // '#'
|
|
'$', // '$'
|
|
'%', // '%'
|
|
'&', // '&'
|
|
'''', // ''''
|
|
'(', // '('
|
|
')', // ')'
|
|
'*', // '*'
|
|
'+', // '+'
|
|
',', // ','
|
|
'-', // '-'
|
|
'.', // '.'
|
|
'/', // '/'
|
|
'0', // '0'
|
|
'1', // '1'
|
|
'2', // '2'
|
|
'3', // '3'
|
|
'4', // '4'
|
|
'5', // '5'
|
|
'6', // '6'
|
|
'7', // '7'
|
|
'8', // '8'
|
|
'9', // '9'
|
|
':', // ':'
|
|
';', // ';'
|
|
'<', // '<'
|
|
'=', // '='
|
|
'>', // '>'
|
|
'?', // '?'
|
|
'@', // '@'
|
|
'A', // 'A'
|
|
'B', // 'B'
|
|
'C', // 'C'
|
|
'D', // 'D'
|
|
'E', // 'E'
|
|
'F', // 'F'
|
|
'G', // 'G'
|
|
'H', // 'H'
|
|
'I', // 'I'
|
|
'J', // 'J'
|
|
'K', // 'K'
|
|
'L', // 'L'
|
|
'M', // 'M'
|
|
'N', // 'N'
|
|
'O', // 'O'
|
|
'P', // 'P'
|
|
'Q', // 'Q'
|
|
'R', // 'R'
|
|
'S', // 'S'
|
|
'T', // 'T'
|
|
'U', // 'U'
|
|
'V', // 'V'
|
|
'W', // 'W'
|
|
'X', // 'X'
|
|
'Y', // 'Y'
|
|
'Z', // 'Z'
|
|
'[', // '['
|
|
'\', // '\'
|
|
']', // ']'
|
|
'^', // '^'
|
|
'_', // '_'
|
|
'`', // '`'
|
|
'a', // 'a'
|
|
'b', // 'b'
|
|
'c', // 'c'
|
|
'd', // 'd'
|
|
'e', // 'e'
|
|
'f', // 'f'
|
|
'g', // 'g'
|
|
'h', // 'h'
|
|
'i', // 'i'
|
|
'j', // 'j'
|
|
'k', // 'k'
|
|
'l', // 'l'
|
|
'm', // 'm'
|
|
'n', // 'n'
|
|
'o', // 'o'
|
|
'p', // 'p'
|
|
'q', // 'q'
|
|
'r', // 'r'
|
|
's', // 's'
|
|
't', // 't'
|
|
'u', // 'u'
|
|
'v', // 'v'
|
|
'w', // 'w'
|
|
'x', // 'x'
|
|
'y', // 'y'
|
|
'z', // 'z'
|
|
'{', // '{'
|
|
'|', // '|'
|
|
'}', // '}'
|
|
'~', // '~'
|
|
#127, // #127
|
|
'', // #128
|
|
'', // #129
|
|
'', // #130
|
|
'', // #131
|
|
'', // #132
|
|
'', // #133
|
|
'', // #134
|
|
'', // #135
|
|
'', // #136
|
|
'', // #137
|
|
'', // #138
|
|
'', // #139
|
|
'', // #140
|
|
'', // #141
|
|
'', // #142
|
|
'', // #143
|
|
'', // #144
|
|
'', // #145
|
|
'', // #146
|
|
'', // #147
|
|
'', // #148
|
|
'', // #149
|
|
'', // #150
|
|
'', // #151
|
|
'', // #152
|
|
'', // #153
|
|
'', // #154
|
|
'', // #155
|
|
'', // #156
|
|
'', // #157
|
|
'', // #158
|
|
'', // #159
|
|
'', // #160
|
|
'', // #161
|
|
'', // #162
|
|
'', // #163
|
|
'', // #164
|
|
'', // #165
|
|
'', // #166
|
|
'', // #167
|
|
'', // #168
|
|
'', // #169
|
|
'', // #170
|
|
'', // #171
|
|
'', // #172
|
|
'', // #173
|
|
'', // #174
|
|
'', // #175
|
|
'', // #176
|
|
'', // #177
|
|
'', // #178
|
|
'', // #179
|
|
'', // #180
|
|
'', // #181
|
|
'', // #182
|
|
'', // #183
|
|
'', // #184
|
|
'', // #185
|
|
'', // #186
|
|
'', // #187
|
|
'', // #188
|
|
'', // #189
|
|
'', // #190
|
|
'', // #191
|
|
#209#142, // #192
|
|
#208#176, // #193
|
|
#208#177, // #194
|
|
#209#134, // #195
|
|
#208#180, // #196
|
|
#208#181, // #197
|
|
#209#132, // #198
|
|
#208#179, // #199
|
|
#209#133, // #200
|
|
#208#184, // #201
|
|
#208#185, // #202
|
|
#208#186, // #203
|
|
#208#187, // #204
|
|
#208#188, // #205
|
|
#208#189, // #206
|
|
#208#190, // #207
|
|
#208#191, // #208
|
|
#209#143, // #209
|
|
#209#128, // #210
|
|
#209#129, // #211
|
|
#209#130, // #212
|
|
#209#131, // #213
|
|
#208#182, // #214
|
|
#208#178, // #215
|
|
#209#140, // #216
|
|
#209#139, // #217
|
|
#208#183, // #218
|
|
#209#136, // #219
|
|
#209#141, // #220
|
|
#209#137, // #221
|
|
#209#135, // #222
|
|
#209#138, // #223
|
|
#208#174, // #224
|
|
#208#144, // #225
|
|
#208#145, // #226
|
|
#208#166, // #227
|
|
#208#148, // #228
|
|
#208#149, // #229
|
|
#208#164, // #230
|
|
#208#147, // #231
|
|
#208#165, // #232
|
|
#208#152, // #233
|
|
#208#153, // #234
|
|
#208#154, // #235
|
|
#208#155, // #236
|
|
#208#156, // #237
|
|
#208#157, // #238
|
|
#208#158, // #239
|
|
#208#159, // #240
|
|
#208#175, // #241
|
|
#208#160, // #242
|
|
#208#161, // #243
|
|
#208#162, // #244
|
|
#208#163, // #245
|
|
#208#150, // #246
|
|
#208#146, // #247
|
|
#208#172, // #248
|
|
#208#171, // #249
|
|
#208#151, // #250
|
|
#208#168, // #251
|
|
#208#173, // #252
|
|
#208#169, // #253
|
|
#208#167, // #254
|
|
'' // #255
|
|
);
|
|
|
|
function UTF8BOMToUTF8(const s: string): string;
|
|
begin
|
|
Result:=copy(s,4,length(s));
|
|
end;
|
|
|
|
function ISO_8859_1ToUTF8(const s: string): string;
|
|
begin
|
|
Result:=SingleByteToUTF8(s,ArrayISO_8859_1ToUTF8);
|
|
end;
|
|
|
|
function ISO_8859_2ToUTF8(const s: string): string;
|
|
begin
|
|
Result:=SingleByteToUTF8(s,ArrayISO_8859_2ToUTF8);
|
|
end;
|
|
|
|
function CP1250ToUTF8(const s: string): string;
|
|
begin
|
|
Result:=SingleByteToUTF8(s,ArrayCP1250ToUTF8);
|
|
end;
|
|
|
|
function CP1251ToUTF8(const s: string): string;
|
|
begin
|
|
Result:=SingleByteToUTF8(s,ArrayCP1251ToUTF8);
|
|
end;
|
|
|
|
function CP1252ToUTF8(const s: string): string;
|
|
begin
|
|
Result:=SingleByteToUTF8(s,ArrayCP1252ToUTF8);
|
|
end;
|
|
|
|
function CP1253ToUTF8(const s: string): string;
|
|
begin
|
|
Result:=SingleByteToUTF8(s,ArrayCP1253ToUTF8);
|
|
end;
|
|
|
|
function CP1254ToUTF8(const s: string): string;
|
|
begin
|
|
Result:=SingleByteToUTF8(s,ArrayCP1254ToUTF8);
|
|
end;
|
|
|
|
function CP1255ToUTF8(const s: string): string;
|
|
begin
|
|
Result:=SingleByteToUTF8(s,ArrayCP1255ToUTF8);
|
|
end;
|
|
|
|
function CP1256ToUTF8(const s: string): string;
|
|
begin
|
|
Result:=SingleByteToUTF8(s,ArrayCP1256ToUTF8);
|
|
end;
|
|
|
|
function CP1257ToUTF8(const s: string): string;
|
|
begin
|
|
Result:=SingleByteToUTF8(s,ArrayCP1257ToUTF8);
|
|
end;
|
|
|
|
function CP1258ToUTF8(const s: string): string;
|
|
begin
|
|
Result:=SingleByteToUTF8(s,ArrayCP1258ToUTF8);
|
|
end;
|
|
|
|
function CP437ToUTF8(const s: string): string;
|
|
begin
|
|
Result:=SingleByteToUTF8(s,ArrayCP437ToUTF8);
|
|
end;
|
|
|
|
function CP850ToUTF8(const s: string): string;
|
|
begin
|
|
Result:=SingleByteToUTF8(s,ArrayCP850ToUTF8);
|
|
end;
|
|
|
|
function CP852ToUTF8(const s: string): string;
|
|
begin
|
|
Result:=SingleByteToUTF8(s,ArrayCP852ToUTF8);
|
|
end;
|
|
|
|
function CP866ToUTF8(const s: string): string;
|
|
begin
|
|
Result:=SingleByteToUTF8(s,ArrayCP866ToUTF8);
|
|
end;
|
|
|
|
function CP874ToUTF8(const s: string): string;
|
|
begin
|
|
Result:=SingleByteToUTF8(s,ArrayCP874ToUTF8);
|
|
end;
|
|
|
|
function KOI8ToUTF8(const s: string): string;
|
|
begin
|
|
Result:=SingleByteToUTF8(s,ArrayKOI8ToUTF8);
|
|
end;
|
|
|
|
function SingleByteToUTF8(const s: string; const Table: TCharToUTF8Table
|
|
): string;
|
|
var
|
|
len: Integer;
|
|
i: Integer;
|
|
Src: PChar;
|
|
Dest: PChar;
|
|
p: PChar;
|
|
c: Char;
|
|
begin
|
|
if s='' then begin
|
|
Result:=s;
|
|
exit;
|
|
end;
|
|
len:=length(s);
|
|
SetLength(Result,len*4);// UTF-8 is at most 4 bytes
|
|
Src:=PChar(s);
|
|
Dest:=PChar(Result);
|
|
for i:=1 to len do begin
|
|
c:=Src^;
|
|
inc(Src);
|
|
if ord(c)<128 then begin
|
|
Dest^:=c;
|
|
inc(Dest);
|
|
end else begin
|
|
p:=Table[c];
|
|
if p<>nil then begin
|
|
while p^<>#0 do begin
|
|
Dest^:=p^;
|
|
inc(p);
|
|
inc(Dest);
|
|
end;
|
|
end;
|
|
end;
|
|
end;
|
|
SetLength(Result,{%H-}PtrUInt(Dest)-PtrUInt(Result));
|
|
end;
|
|
|
|
function UCS2LEToUTF8(const s: string): string;
|
|
var
|
|
len: Integer;
|
|
Src: PWord;
|
|
Dest: PChar;
|
|
i: Integer;
|
|
c: Word;
|
|
begin
|
|
if s='' then begin
|
|
Result:=s;
|
|
exit;
|
|
end;
|
|
len:=length(s) div 2;
|
|
SetLength(Result,len*3);// UTF-8 is at most 3/2 times the size
|
|
Src:=PWord(Pointer(s));
|
|
Dest:=PChar(Result);
|
|
for i:=1 to len do begin
|
|
c:=LEtoN(Src^);
|
|
inc(Src);
|
|
if ord(c)<128 then begin
|
|
Dest^:=chr(c);
|
|
inc(Dest);
|
|
end else begin
|
|
inc(Dest,UnicodeToUTF8SkipErrors(c,Dest));
|
|
end;
|
|
end;
|
|
len:={%H-}PtrUInt(Dest)-PtrUInt(Result);
|
|
if len>length(Result) then
|
|
raise Exception.Create('');
|
|
SetLength(Result,len);
|
|
end;
|
|
|
|
function UCS2BEToUTF8(const s: string): string;
|
|
var
|
|
len: Integer;
|
|
Src: PWord;
|
|
Dest: PChar;
|
|
i: Integer;
|
|
c: Word;
|
|
begin
|
|
if s='' then begin
|
|
Result:=s;
|
|
exit;
|
|
end;
|
|
len:=length(s) div 2;
|
|
SetLength(Result,len*3);// UTF-8 is at most three times the size
|
|
Src:=PWord(Pointer(s));
|
|
Dest:=PChar(Result);
|
|
for i:=1 to len do begin
|
|
c:=BEtoN(Src^);
|
|
inc(Src);
|
|
if ord(c)<128 then begin
|
|
Dest^:=chr(c);
|
|
inc(Dest);
|
|
end else begin
|
|
inc(Dest,UnicodeToUTF8SkipErrors(c,Dest));
|
|
end;
|
|
end;
|
|
len:={%H-}PtrUInt(Dest)-PtrUInt(Result);
|
|
if len>length(Result) then
|
|
raise Exception.Create('');
|
|
SetLength(Result,len);
|
|
end;
|
|
|
|
function UnicodeToCP1250(Unicode: cardinal): integer;
|
|
begin
|
|
case Unicode of
|
|
0..127: Result:=Unicode;
|
|
160: Result:=160;
|
|
164: Result:=164;
|
|
166..169: Result:=Unicode;
|
|
171..174: Result:=Unicode;
|
|
176..177: Result:=Unicode;
|
|
180..184: Result:=Unicode;
|
|
187: Result:=187;
|
|
193..194: Result:=Unicode;
|
|
196: Result:=196;
|
|
199: Result:=199;
|
|
201: Result:=201;
|
|
203: Result:=203;
|
|
205..206: Result:=Unicode;
|
|
211..212: Result:=Unicode;
|
|
214..215: Result:=Unicode;
|
|
218: Result:=218;
|
|
220..221: Result:=Unicode;
|
|
223: Result:=223;
|
|
225..226: Result:=Unicode;
|
|
228: Result:=228;
|
|
231: Result:=231;
|
|
233: Result:=233;
|
|
235: Result:=235;
|
|
237..238: Result:=Unicode;
|
|
243..244: Result:=Unicode;
|
|
246..247: Result:=Unicode;
|
|
250: Result:=250;
|
|
252..253: Result:=Unicode;
|
|
258: Result:=195;
|
|
259: Result:=227;
|
|
260: Result:=165;
|
|
261: Result:=185;
|
|
262: Result:=198;
|
|
263: Result:=230;
|
|
268: Result:=200;
|
|
269: Result:=232;
|
|
270: Result:=207;
|
|
271: Result:=239;
|
|
272: Result:=208;
|
|
273: Result:=240;
|
|
280: Result:=202;
|
|
281: Result:=234;
|
|
282: Result:=204;
|
|
283: Result:=236;
|
|
313: Result:=197;
|
|
314: Result:=229;
|
|
317: Result:=188;
|
|
318: Result:=190;
|
|
321: Result:=163;
|
|
322: Result:=179;
|
|
323: Result:=209;
|
|
324: Result:=241;
|
|
327: Result:=210;
|
|
328: Result:=242;
|
|
336: Result:=213;
|
|
337: Result:=245;
|
|
340: Result:=192;
|
|
341: Result:=224;
|
|
344: Result:=216;
|
|
345: Result:=248;
|
|
346: Result:=140;
|
|
347: Result:=156;
|
|
350: Result:=170;
|
|
351: Result:=186;
|
|
352: Result:=138;
|
|
353: Result:=154;
|
|
354: Result:=222;
|
|
355: Result:=254;
|
|
356: Result:=141;
|
|
357: Result:=157;
|
|
366: Result:=217;
|
|
367: Result:=249;
|
|
368: Result:=219;
|
|
369: Result:=251;
|
|
377: Result:=143;
|
|
378: Result:=159;
|
|
379: Result:=175;
|
|
380: Result:=191;
|
|
381: Result:=142;
|
|
382: Result:=158;
|
|
711: Result:=161;
|
|
728: Result:=162;
|
|
729: Result:=255;
|
|
731: Result:=178;
|
|
733: Result:=189;
|
|
8211..8212: Result:=Unicode-8061;
|
|
8216..8217: Result:=Unicode-8071;
|
|
8218: Result:=130;
|
|
8220..8221: Result:=Unicode-8073;
|
|
8222: Result:=132;
|
|
8224..8225: Result:=Unicode-8090;
|
|
8226: Result:=149;
|
|
8230: Result:=133;
|
|
8240: Result:=137;
|
|
8249: Result:=139;
|
|
8250: Result:=155;
|
|
8364: Result:=128;
|
|
8482: Result:=153;
|
|
else Result:=-1;
|
|
end;
|
|
end;
|
|
|
|
function UnicodeToCP1251(Unicode: cardinal): integer;
|
|
begin
|
|
case Unicode of
|
|
0..127: Result:=Unicode;
|
|
160: Result:=160;
|
|
164: Result:=164;
|
|
166..167: Result:=Unicode;
|
|
169: Result:=169;
|
|
171..174: Result:=Unicode;
|
|
176..177: Result:=Unicode;
|
|
181..183: Result:=Unicode;
|
|
187: Result:=187;
|
|
1025: Result:=168;
|
|
1026..1027: Result:=Unicode-898;
|
|
1028: Result:=170;
|
|
1029: Result:=189;
|
|
1030: Result:=178;
|
|
1031: Result:=175;
|
|
1032: Result:=163;
|
|
1033: Result:=138;
|
|
1034: Result:=140;
|
|
1035: Result:=142;
|
|
1036: Result:=141;
|
|
1038: Result:=161;
|
|
1039: Result:=143;
|
|
1040..1103: Result:=Unicode-848;
|
|
1105: Result:=184;
|
|
1106: Result:=144;
|
|
1107: Result:=131;
|
|
1108: Result:=186;
|
|
1109: Result:=190;
|
|
1110: Result:=179;
|
|
1111: Result:=191;
|
|
1112: Result:=188;
|
|
1113: Result:=154;
|
|
1114: Result:=156;
|
|
1115: Result:=158;
|
|
1116: Result:=157;
|
|
1118: Result:=162;
|
|
1119: Result:=159;
|
|
1168: Result:=165;
|
|
1169: Result:=180;
|
|
8211..8212: Result:=Unicode-8061;
|
|
8216..8217: Result:=Unicode-8071;
|
|
8218: Result:=130;
|
|
8220..8221: Result:=Unicode-8073;
|
|
8222: Result:=132;
|
|
8224..8225: Result:=Unicode-8090;
|
|
8226: Result:=149;
|
|
8230: Result:=133;
|
|
8240: Result:=137;
|
|
8249: Result:=139;
|
|
8250: Result:=155;
|
|
8364: Result:=136;
|
|
8470: Result:=185;
|
|
8482: Result:=153;
|
|
else Result:=-1;
|
|
end;
|
|
end;
|
|
|
|
function UnicodeToCP1252(Unicode: cardinal): integer;
|
|
begin
|
|
case Unicode of
|
|
0..127: Result:=Unicode;
|
|
160..255: Result:=Unicode;
|
|
338: Result:=140;
|
|
339: Result:=156;
|
|
352: Result:=138;
|
|
353: Result:=154;
|
|
376: Result:=159;
|
|
381: Result:=142;
|
|
382: Result:=158;
|
|
402: Result:=131;
|
|
710: Result:=136;
|
|
732: Result:=152;
|
|
8211..8212: Result:=Unicode-8061;
|
|
8216..8217: Result:=Unicode-8071;
|
|
8218: Result:=130;
|
|
8220..8221: Result:=Unicode-8073;
|
|
8222: Result:=132;
|
|
8224..8225: Result:=Unicode-8090;
|
|
8226: Result:=149;
|
|
8230: Result:=133;
|
|
8240: Result:=137;
|
|
8249: Result:=139;
|
|
8250: Result:=155;
|
|
8364: Result:=128;
|
|
8482: Result:=153;
|
|
else Result:=-1;
|
|
end;
|
|
end;
|
|
|
|
function UnicodeToCP1253(Unicode: cardinal): integer;
|
|
begin
|
|
case Unicode of
|
|
0..127: Result:=Unicode;
|
|
160: Result:=160;
|
|
163..169: Result:=Unicode;
|
|
171..174: Result:=Unicode;
|
|
176..179: Result:=Unicode;
|
|
181..183: Result:=Unicode;
|
|
187: Result:=187;
|
|
189: Result:=189;
|
|
402: Result:=131;
|
|
900: Result:=180;
|
|
901..902: Result:=Unicode-740;
|
|
904..906: Result:=Unicode-720;
|
|
908: Result:=188;
|
|
910..929: Result:=Unicode-720;
|
|
931..974: Result:=Unicode-720;
|
|
8211..8212: Result:=Unicode-8061;
|
|
8213: Result:=175;
|
|
8216..8217: Result:=Unicode-8071;
|
|
8218: Result:=130;
|
|
8220..8221: Result:=Unicode-8073;
|
|
8222: Result:=132;
|
|
8224..8225: Result:=Unicode-8090;
|
|
8226: Result:=149;
|
|
8230: Result:=133;
|
|
8240: Result:=137;
|
|
8249: Result:=139;
|
|
8250: Result:=155;
|
|
8364: Result:=128;
|
|
8482: Result:=153;
|
|
else Result:=-1;
|
|
end;
|
|
end;
|
|
|
|
function UnicodeToCP1254(Unicode: cardinal): integer;
|
|
begin
|
|
case Unicode of
|
|
0..127: Result:=Unicode;
|
|
160..207: Result:=Unicode;
|
|
209..220: Result:=Unicode;
|
|
223..239: Result:=Unicode;
|
|
241..252: Result:=Unicode;
|
|
255: Result:=255;
|
|
286: Result:=208;
|
|
287: Result:=240;
|
|
304: Result:=221;
|
|
305: Result:=253;
|
|
338: Result:=140;
|
|
339: Result:=156;
|
|
350: Result:=222;
|
|
351: Result:=254;
|
|
352: Result:=138;
|
|
353: Result:=154;
|
|
376: Result:=159;
|
|
402: Result:=131;
|
|
710: Result:=136;
|
|
732: Result:=152;
|
|
8211..8212: Result:=Unicode-8061;
|
|
8216..8217: Result:=Unicode-8071;
|
|
8218: Result:=130;
|
|
8220..8221: Result:=Unicode-8073;
|
|
8222: Result:=132;
|
|
8224..8225: Result:=Unicode-8090;
|
|
8226: Result:=149;
|
|
8230: Result:=133;
|
|
8240: Result:=137;
|
|
8249: Result:=139;
|
|
8250: Result:=155;
|
|
8364: Result:=128;
|
|
8482: Result:=153;
|
|
else Result:=-1;
|
|
end;
|
|
end;
|
|
|
|
function UnicodeToCP1255(Unicode: cardinal): integer;
|
|
begin
|
|
case Unicode of
|
|
0..127: Result:=Unicode;
|
|
160..163: Result:=Unicode;
|
|
165..169: Result:=Unicode;
|
|
171..185: Result:=Unicode;
|
|
187..191: Result:=Unicode;
|
|
215: Result:=170;
|
|
247: Result:=186;
|
|
402: Result:=131;
|
|
710: Result:=136;
|
|
732: Result:=152;
|
|
1456..1465: Result:=Unicode-1264;
|
|
1467..1475: Result:=Unicode-1264;
|
|
1488..1514: Result:=Unicode-1264;
|
|
1520..1524: Result:=Unicode-1308;
|
|
8206..8207: Result:=Unicode-7953;
|
|
8211..8212: Result:=Unicode-8061;
|
|
8216..8217: Result:=Unicode-8071;
|
|
8218: Result:=130;
|
|
8220..8221: Result:=Unicode-8073;
|
|
8222: Result:=132;
|
|
8224..8225: Result:=Unicode-8090;
|
|
8226: Result:=149;
|
|
8230: Result:=133;
|
|
8240: Result:=137;
|
|
8249: Result:=139;
|
|
8250: Result:=155;
|
|
8362: Result:=164;
|
|
8364: Result:=128;
|
|
8482: Result:=153;
|
|
else Result:=-1;
|
|
end;
|
|
end;
|
|
|
|
function UnicodeToCP1256(Unicode: cardinal): integer;
|
|
begin
|
|
case Unicode of
|
|
0..127: Result:=Unicode;
|
|
160: Result:=160;
|
|
162..169: Result:=Unicode;
|
|
171..185: Result:=Unicode;
|
|
187..190: Result:=Unicode;
|
|
215: Result:=215;
|
|
224: Result:=224;
|
|
226: Result:=226;
|
|
231..235: Result:=Unicode;
|
|
238..239: Result:=Unicode;
|
|
244: Result:=244;
|
|
247: Result:=247;
|
|
249: Result:=249;
|
|
251..252: Result:=Unicode;
|
|
338: Result:=140;
|
|
339: Result:=156;
|
|
402: Result:=131;
|
|
710: Result:=136;
|
|
1548: Result:=161;
|
|
1563: Result:=186;
|
|
1567: Result:=191;
|
|
1569..1590: Result:=Unicode-1376;
|
|
1591..1594: Result:=Unicode-1375;
|
|
1600..1603: Result:=Unicode-1380;
|
|
1604: Result:=225;
|
|
1605..1608: Result:=Unicode-1378;
|
|
1609..1610: Result:=Unicode-1373;
|
|
1611..1614: Result:=Unicode-1371;
|
|
1615..1616: Result:=Unicode-1370;
|
|
1617: Result:=248;
|
|
1618: Result:=250;
|
|
1657: Result:=138;
|
|
1662: Result:=129;
|
|
1670: Result:=141;
|
|
1672: Result:=143;
|
|
1681: Result:=154;
|
|
1688: Result:=142;
|
|
1705: Result:=152;
|
|
1711: Result:=144;
|
|
1722: Result:=159;
|
|
1726: Result:=170;
|
|
1729: Result:=192;
|
|
1746: Result:=255;
|
|
8204..8205: Result:=Unicode-8047;
|
|
8206..8207: Result:=Unicode-7953;
|
|
8211..8212: Result:=Unicode-8061;
|
|
8216..8217: Result:=Unicode-8071;
|
|
8218: Result:=130;
|
|
8220..8221: Result:=Unicode-8073;
|
|
8222: Result:=132;
|
|
8224..8225: Result:=Unicode-8090;
|
|
8226: Result:=149;
|
|
8230: Result:=133;
|
|
8240: Result:=137;
|
|
8249: Result:=139;
|
|
8250: Result:=155;
|
|
8364: Result:=128;
|
|
8482: Result:=153;
|
|
else Result:=-1;
|
|
end;
|
|
end;
|
|
|
|
function UnicodeToCP1257(Unicode: cardinal): integer;
|
|
begin
|
|
case Unicode of
|
|
0..127: Result:=Unicode;
|
|
160: Result:=160;
|
|
162..164: Result:=Unicode;
|
|
166..167: Result:=Unicode;
|
|
168: Result:=141;
|
|
169: Result:=169;
|
|
171..174: Result:=Unicode;
|
|
175: Result:=157;
|
|
176..183: Result:=Unicode;
|
|
184: Result:=143;
|
|
185: Result:=185;
|
|
187..190: Result:=Unicode;
|
|
196..197: Result:=Unicode;
|
|
198: Result:=175;
|
|
201: Result:=201;
|
|
211: Result:=211;
|
|
213..215: Result:=Unicode;
|
|
216: Result:=168;
|
|
220: Result:=220;
|
|
223: Result:=223;
|
|
228..229: Result:=Unicode;
|
|
230: Result:=191;
|
|
233: Result:=233;
|
|
243: Result:=243;
|
|
245..247: Result:=Unicode;
|
|
248: Result:=184;
|
|
252: Result:=252;
|
|
256: Result:=194;
|
|
257: Result:=226;
|
|
260: Result:=192;
|
|
261: Result:=224;
|
|
262: Result:=195;
|
|
263: Result:=227;
|
|
268: Result:=200;
|
|
269: Result:=232;
|
|
274: Result:=199;
|
|
275: Result:=231;
|
|
278: Result:=203;
|
|
279: Result:=235;
|
|
280: Result:=198;
|
|
281: Result:=230;
|
|
290: Result:=204;
|
|
291: Result:=236;
|
|
298: Result:=206;
|
|
299: Result:=238;
|
|
302: Result:=193;
|
|
303: Result:=225;
|
|
310: Result:=205;
|
|
311: Result:=237;
|
|
315: Result:=207;
|
|
316: Result:=239;
|
|
321: Result:=217;
|
|
322: Result:=249;
|
|
323: Result:=209;
|
|
324: Result:=241;
|
|
325: Result:=210;
|
|
326: Result:=242;
|
|
332: Result:=212;
|
|
333: Result:=244;
|
|
342: Result:=170;
|
|
343: Result:=186;
|
|
346: Result:=218;
|
|
347: Result:=250;
|
|
352: Result:=208;
|
|
353: Result:=240;
|
|
362: Result:=219;
|
|
363: Result:=251;
|
|
370: Result:=216;
|
|
371: Result:=248;
|
|
377: Result:=202;
|
|
378: Result:=234;
|
|
379: Result:=221;
|
|
380: Result:=253;
|
|
381: Result:=222;
|
|
382: Result:=254;
|
|
711: Result:=142;
|
|
729: Result:=255;
|
|
731: Result:=158;
|
|
8211..8212: Result:=Unicode-8061;
|
|
8216..8217: Result:=Unicode-8071;
|
|
8218: Result:=130;
|
|
8220..8221: Result:=Unicode-8073;
|
|
8222: Result:=132;
|
|
8224..8225: Result:=Unicode-8090;
|
|
8226: Result:=149;
|
|
8230: Result:=133;
|
|
8240: Result:=137;
|
|
8249: Result:=139;
|
|
8250: Result:=155;
|
|
8364: Result:=128;
|
|
8482: Result:=153;
|
|
else Result:=-1;
|
|
end;
|
|
end;
|
|
|
|
function UnicodeToCP1258(Unicode: cardinal): integer;
|
|
begin
|
|
case Unicode of
|
|
0..127: Result:=Unicode;
|
|
160..194: Result:=Unicode;
|
|
196..203: Result:=Unicode;
|
|
205..207: Result:=Unicode;
|
|
209: Result:=209;
|
|
211..212: Result:=Unicode;
|
|
214..220: Result:=Unicode;
|
|
223..226: Result:=Unicode;
|
|
228..235: Result:=Unicode;
|
|
237..239: Result:=Unicode;
|
|
241: Result:=241;
|
|
243..244: Result:=Unicode;
|
|
246..252: Result:=Unicode;
|
|
255: Result:=255;
|
|
258: Result:=195;
|
|
259: Result:=227;
|
|
272: Result:=208;
|
|
273: Result:=240;
|
|
338: Result:=140;
|
|
339: Result:=156;
|
|
376: Result:=159;
|
|
402: Result:=131;
|
|
416: Result:=213;
|
|
417: Result:=245;
|
|
431: Result:=221;
|
|
432: Result:=253;
|
|
710: Result:=136;
|
|
732: Result:=152;
|
|
768: Result:=204;
|
|
769: Result:=236;
|
|
771: Result:=222;
|
|
777: Result:=210;
|
|
803: Result:=242;
|
|
8211..8212: Result:=Unicode-8061;
|
|
8216..8217: Result:=Unicode-8071;
|
|
8218: Result:=130;
|
|
8220..8221: Result:=Unicode-8073;
|
|
8222: Result:=132;
|
|
8224..8225: Result:=Unicode-8090;
|
|
8226: Result:=149;
|
|
8230: Result:=133;
|
|
8240: Result:=137;
|
|
8249: Result:=139;
|
|
8250: Result:=155;
|
|
8363: Result:=254;
|
|
8364: Result:=128;
|
|
8482: Result:=153;
|
|
else Result:=-1;
|
|
end;
|
|
end;
|
|
|
|
function UnicodeToCP437(Unicode: cardinal): integer;
|
|
begin
|
|
case Unicode of
|
|
0..127: Result:=Unicode;
|
|
160: Result:=255;
|
|
161: Result:=173;
|
|
162..163: Result:=Unicode-7;
|
|
165: Result:=157;
|
|
170: Result:=166;
|
|
171: Result:=174;
|
|
172: Result:=170;
|
|
176: Result:=248;
|
|
177: Result:=241;
|
|
178: Result:=253;
|
|
181: Result:=230;
|
|
183: Result:=250;
|
|
186: Result:=167;
|
|
187: Result:=175;
|
|
188: Result:=172;
|
|
189: Result:=171;
|
|
191: Result:=168;
|
|
196..197: Result:=Unicode-54;
|
|
198: Result:=146;
|
|
199: Result:=128;
|
|
201: Result:=144;
|
|
209: Result:=165;
|
|
214: Result:=153;
|
|
220: Result:=154;
|
|
223: Result:=225;
|
|
224: Result:=133;
|
|
225: Result:=160;
|
|
226: Result:=131;
|
|
228: Result:=132;
|
|
229: Result:=134;
|
|
230: Result:=145;
|
|
231: Result:=135;
|
|
232: Result:=138;
|
|
233: Result:=130;
|
|
234..235: Result:=Unicode-98;
|
|
236: Result:=141;
|
|
237: Result:=161;
|
|
238: Result:=140;
|
|
239: Result:=139;
|
|
241: Result:=164;
|
|
242: Result:=149;
|
|
243: Result:=162;
|
|
244: Result:=147;
|
|
246: Result:=148;
|
|
247: Result:=246;
|
|
249: Result:=151;
|
|
250: Result:=163;
|
|
251: Result:=150;
|
|
252: Result:=129;
|
|
255: Result:=152;
|
|
402: Result:=159;
|
|
915: Result:=226;
|
|
920: Result:=233;
|
|
931: Result:=228;
|
|
934: Result:=232;
|
|
937: Result:=234;
|
|
945: Result:=224;
|
|
948: Result:=235;
|
|
949: Result:=238;
|
|
960: Result:=227;
|
|
963: Result:=229;
|
|
964: Result:=231;
|
|
966: Result:=237;
|
|
8319: Result:=252;
|
|
8359: Result:=158;
|
|
8729: Result:=249;
|
|
8730: Result:=251;
|
|
8734: Result:=236;
|
|
8745: Result:=239;
|
|
8776: Result:=247;
|
|
8801: Result:=240;
|
|
8804: Result:=243;
|
|
8805: Result:=242;
|
|
8976: Result:=169;
|
|
8992..8993: Result:=Unicode-8748;
|
|
9472: Result:=196;
|
|
9474: Result:=179;
|
|
9484: Result:=218;
|
|
9488: Result:=191;
|
|
9492: Result:=192;
|
|
9496: Result:=217;
|
|
9500: Result:=195;
|
|
9508: Result:=180;
|
|
9516: Result:=194;
|
|
9524: Result:=193;
|
|
9532: Result:=197;
|
|
9552: Result:=205;
|
|
9553: Result:=186;
|
|
9554..9555: Result:=Unicode-9341;
|
|
9556: Result:=201;
|
|
9557: Result:=184;
|
|
9558: Result:=183;
|
|
9559: Result:=187;
|
|
9560: Result:=212;
|
|
9561: Result:=211;
|
|
9562: Result:=200;
|
|
9563: Result:=190;
|
|
9564: Result:=189;
|
|
9565: Result:=188;
|
|
9566..9567: Result:=Unicode-9368;
|
|
9568: Result:=204;
|
|
9569..9570: Result:=Unicode-9388;
|
|
9571: Result:=185;
|
|
9572..9573: Result:=Unicode-9363;
|
|
9574: Result:=203;
|
|
9575..9576: Result:=Unicode-9368;
|
|
9577: Result:=202;
|
|
9578: Result:=216;
|
|
9579: Result:=215;
|
|
9580: Result:=206;
|
|
9600: Result:=223;
|
|
9604: Result:=220;
|
|
9608: Result:=219;
|
|
9612: Result:=221;
|
|
9616: Result:=222;
|
|
9617..9619: Result:=Unicode-9441;
|
|
9632: Result:=254;
|
|
else Result:=-1;
|
|
end;
|
|
end;
|
|
|
|
function UnicodeToCP850(Unicode: cardinal): integer;
|
|
begin
|
|
case Unicode of
|
|
0..127: Result:=Unicode;
|
|
160: Result:=255;
|
|
161: Result:=173;
|
|
162: Result:=189;
|
|
163: Result:=156;
|
|
164: Result:=207;
|
|
165: Result:=190;
|
|
166: Result:=221;
|
|
167: Result:=245;
|
|
168: Result:=249;
|
|
169: Result:=184;
|
|
170: Result:=166;
|
|
171: Result:=174;
|
|
172: Result:=170;
|
|
173: Result:=240;
|
|
174: Result:=169;
|
|
175: Result:=238;
|
|
176: Result:=248;
|
|
177: Result:=241;
|
|
178: Result:=253;
|
|
179: Result:=252;
|
|
180: Result:=239;
|
|
181: Result:=230;
|
|
182: Result:=244;
|
|
183: Result:=250;
|
|
184: Result:=247;
|
|
185: Result:=251;
|
|
186: Result:=167;
|
|
187: Result:=175;
|
|
188: Result:=172;
|
|
189: Result:=171;
|
|
190: Result:=243;
|
|
191: Result:=168;
|
|
192: Result:=183;
|
|
193..194: Result:=Unicode-12;
|
|
195: Result:=199;
|
|
196..197: Result:=Unicode-54;
|
|
198: Result:=146;
|
|
199: Result:=128;
|
|
200: Result:=212;
|
|
201: Result:=144;
|
|
202..203: Result:=Unicode--8;
|
|
204: Result:=222;
|
|
205..207: Result:=Unicode--9;
|
|
208: Result:=209;
|
|
209: Result:=165;
|
|
210: Result:=227;
|
|
211: Result:=224;
|
|
212: Result:=226;
|
|
213: Result:=229;
|
|
214: Result:=153;
|
|
215: Result:=158;
|
|
216: Result:=157;
|
|
217: Result:=235;
|
|
218..219: Result:=Unicode--15;
|
|
220: Result:=154;
|
|
221: Result:=237;
|
|
222: Result:=232;
|
|
223: Result:=225;
|
|
224: Result:=133;
|
|
225: Result:=160;
|
|
226: Result:=131;
|
|
227: Result:=198;
|
|
228: Result:=132;
|
|
229: Result:=134;
|
|
230: Result:=145;
|
|
231: Result:=135;
|
|
232: Result:=138;
|
|
233: Result:=130;
|
|
234..235: Result:=Unicode-98;
|
|
236: Result:=141;
|
|
237: Result:=161;
|
|
238: Result:=140;
|
|
239: Result:=139;
|
|
240: Result:=208;
|
|
241: Result:=164;
|
|
242: Result:=149;
|
|
243: Result:=162;
|
|
244: Result:=147;
|
|
245: Result:=228;
|
|
246: Result:=148;
|
|
247: Result:=246;
|
|
248: Result:=155;
|
|
249: Result:=151;
|
|
250: Result:=163;
|
|
251: Result:=150;
|
|
252: Result:=129;
|
|
253: Result:=236;
|
|
254: Result:=231;
|
|
255: Result:=152;
|
|
305: Result:=213;
|
|
402: Result:=159;
|
|
8215: Result:=242;
|
|
9472: Result:=196;
|
|
9474: Result:=179;
|
|
9484: Result:=218;
|
|
9488: Result:=191;
|
|
9492: Result:=192;
|
|
9496: Result:=217;
|
|
9500: Result:=195;
|
|
9508: Result:=180;
|
|
9516: Result:=194;
|
|
9524: Result:=193;
|
|
9532: Result:=197;
|
|
9552: Result:=205;
|
|
9553: Result:=186;
|
|
9556: Result:=201;
|
|
9559: Result:=187;
|
|
9562: Result:=200;
|
|
9565: Result:=188;
|
|
9568: Result:=204;
|
|
9571: Result:=185;
|
|
9574: Result:=203;
|
|
9577: Result:=202;
|
|
9580: Result:=206;
|
|
9600: Result:=223;
|
|
9604: Result:=220;
|
|
9608: Result:=219;
|
|
9617..9619: Result:=Unicode-9441;
|
|
9632: Result:=254;
|
|
else Result:=-1;
|
|
end;
|
|
end;
|
|
|
|
// ftp://ftp.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/PC/CP852.TXT
|
|
function UnicodeToCP852(Unicode: cardinal): integer;
|
|
begin
|
|
case Unicode of
|
|
0..127: Result:=Unicode;
|
|
$00c7: Result:=$80; // LATIN CAPITAL LETTER C WITH CEDILLA
|
|
$00fc: Result:=$81; // LATIN SMALL LETTER U WITH DIAERESIS
|
|
$00e9: Result:=$82; // LATIN SMALL LETTER E WITH ACUTE
|
|
$00e2: Result:=$83; // LATIN SMALL LETTER A WITH CIRCUMFLEX
|
|
$00e4: Result:=$84; // LATIN SMALL LETTER A WITH DIAERESIS
|
|
$016f: Result:=$85; // LATIN SMALL LETTER U WITH RING ABOVE
|
|
$0107: Result:=$86; // LATIN SMALL LETTER C WITH ACUTE
|
|
$00e7: Result:=$87; // LATIN SMALL LETTER C WITH CEDILLA
|
|
$0142: Result:=$88; // LATIN SMALL LETTER L WITH STROKE
|
|
$00eb: Result:=$89; // LATIN SMALL LETTER E WITH DIAERESIS
|
|
$0150: Result:=$8a; // LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
|
|
$0151: Result:=$8b; // LATIN SMALL LETTER O WITH DOUBLE ACUTE
|
|
$00ee: Result:=$8c; // LATIN SMALL LETTER I WITH CIRCUMFLEX
|
|
$0179: Result:=$8d; // LATIN CAPITAL LETTER Z WITH ACUTE
|
|
$00c4: Result:=$8e; // LATIN CAPITAL LETTER A WITH DIAERESIS
|
|
$0106: Result:=$8f; // LATIN CAPITAL LETTER C WITH ACUTE
|
|
$00c9: Result:=$90; // LATIN CAPITAL LETTER E WITH ACUTE
|
|
$0139: Result:=$91; // LATIN CAPITAL LETTER L WITH ACUTE
|
|
$013a: Result:=$92; // LATIN SMALL LETTER L WITH ACUTE
|
|
$00f4: Result:=$93; // LATIN SMALL LETTER O WITH CIRCUMFLEX
|
|
$00f6: Result:=$94; // LATIN SMALL LETTER O WITH DIAERESIS
|
|
$013d: Result:=$95; // LATIN CAPITAL LETTER L WITH CARON
|
|
$013e: Result:=$96; // LATIN SMALL LETTER L WITH CARON
|
|
$015a: Result:=$97; // LATIN CAPITAL LETTER S WITH ACUTE
|
|
$015b: Result:=$98; // LATIN SMALL LETTER S WITH ACUTE
|
|
$00d6: Result:=$99; // LATIN CAPITAL LETTER O WITH DIAERESIS
|
|
$00dc: Result:=$9a; // LATIN CAPITAL LETTER U WITH DIAERESIS
|
|
$0164: Result:=$9b; // LATIN CAPITAL LETTER T WITH CARON
|
|
$0165: Result:=$9c; // LATIN SMALL LETTER T WITH CARON
|
|
$0141: Result:=$9d; // LATIN CAPITAL LETTER L WITH STROKE
|
|
$00d7: Result:=$9e; // MULTIPLICATION SIGN
|
|
$010d: Result:=$9f; // LATIN SMALL LETTER C WITH CARON
|
|
$00e1: Result:=$a0; // LATIN SMALL LETTER A WITH ACUTE
|
|
$00ed: Result:=$a1; // LATIN SMALL LETTER I WITH ACUTE
|
|
$00f3: Result:=$a2; // LATIN SMALL LETTER O WITH ACUTE
|
|
$00fa: Result:=$a3; // LATIN SMALL LETTER U WITH ACUTE
|
|
$0104: Result:=$a4; // LATIN CAPITAL LETTER A WITH OGONEK
|
|
$0105: Result:=$a5; // LATIN SMALL LETTER A WITH OGONEK
|
|
$017d: Result:=$a6; // LATIN CAPITAL LETTER Z WITH CARON
|
|
$017e: Result:=$a7; // LATIN SMALL LETTER Z WITH CARON
|
|
$0118: Result:=$a8; // LATIN CAPITAL LETTER E WITH OGONEK
|
|
$0119: Result:=$a9; // LATIN SMALL LETTER E WITH OGONEK
|
|
$00ac: Result:=$aa; // NOT SIGN
|
|
$017a: Result:=$ab; // LATIN SMALL LETTER Z WITH ACUTE
|
|
$010c: Result:=$ac; // LATIN CAPITAL LETTER C WITH CARON
|
|
$015f: Result:=$ad; // LATIN SMALL LETTER S WITH CEDILLA
|
|
$00ab: Result:=$ae; // LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
|
|
$00bb: Result:=$af; // RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
|
|
$2591: Result:=$b0; // LIGHT SHADE
|
|
$2592: Result:=$b1; // MEDIUM SHADE
|
|
$2593: Result:=$b2; // DARK SHADE
|
|
$2502: Result:=$b3; // BOX DRAWINGS LIGHT VERTICAL
|
|
$2524: Result:=$b4; // BOX DRAWINGS LIGHT VERTICAL AND LEFT
|
|
$00c1: Result:=$b5; // LATIN CAPITAL LETTER A WITH ACUTE
|
|
$00c2: Result:=$b6; // LATIN CAPITAL LETTER A WITH CIRCUMFLEX
|
|
$011a: Result:=$b7; // LATIN CAPITAL LETTER E WITH CARON
|
|
$015e: Result:=$b8; // LATIN CAPITAL LETTER S WITH CEDILLA
|
|
$2563: Result:=$b9; // BOX DRAWINGS DOUBLE VERTICAL AND LEFT
|
|
$2551: Result:=$ba; // BOX DRAWINGS DOUBLE VERTICAL
|
|
$2557: Result:=$bb; // BOX DRAWINGS DOUBLE DOWN AND LEFT
|
|
$255d: Result:=$bc; // BOX DRAWINGS DOUBLE UP AND LEFT
|
|
$017b: Result:=$bd; // LATIN CAPITAL LETTER Z WITH DOT ABOVE
|
|
$017c: Result:=$be; // LATIN SMALL LETTER Z WITH DOT ABOVE
|
|
$2510: Result:=$bf; // BOX DRAWINGS LIGHT DOWN AND LEFT
|
|
$2514: Result:=$c0; // BOX DRAWINGS LIGHT UP AND RIGHT
|
|
$2534: Result:=$c1; // BOX DRAWINGS LIGHT UP AND HORIZONTAL
|
|
$252c: Result:=$c2; // BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
|
|
$251c: Result:=$c3; // BOX DRAWINGS LIGHT VERTICAL AND RIGHT
|
|
$2500: Result:=$c4; // BOX DRAWINGS LIGHT HORIZONTAL
|
|
$253c: Result:=$c5; // BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
|
|
$0102: Result:=$c6; // LATIN CAPITAL LETTER A WITH BREVE
|
|
$0103: Result:=$c7; // LATIN SMALL LETTER A WITH BREVE
|
|
$255a: Result:=$c8; // BOX DRAWINGS DOUBLE UP AND RIGHT
|
|
$2554: Result:=$c9; // BOX DRAWINGS DOUBLE DOWN AND RIGHT
|
|
$2569: Result:=$ca; // BOX DRAWINGS DOUBLE UP AND HORIZONTAL
|
|
$2566: Result:=$cb; // BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
|
|
$2560: Result:=$cc; // BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
|
|
$2550: Result:=$cd; // BOX DRAWINGS DOUBLE HORIZONTAL
|
|
$256c: Result:=$ce; // BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
|
|
$00a4: Result:=$cf; // CURRENCY SIGN
|
|
$0111: Result:=$d0; // LATIN SMALL LETTER D WITH STROKE
|
|
$0110: Result:=$d1; // LATIN CAPITAL LETTER D WITH STROKE
|
|
$010e: Result:=$d2; // LATIN CAPITAL LETTER D WITH CARON
|
|
$00cb: Result:=$d3; // LATIN CAPITAL LETTER E WITH DIAERESIS
|
|
$010f: Result:=$d4; // LATIN SMALL LETTER D WITH CARON
|
|
$0147: Result:=$d5; // LATIN CAPITAL LETTER N WITH CARON
|
|
$00cd: Result:=$d6; // LATIN CAPITAL LETTER I WITH ACUTE
|
|
$00ce: Result:=$d7; // LATIN CAPITAL LETTER I WITH CIRCUMFLEX
|
|
$011b: Result:=$d8; // LATIN SMALL LETTER E WITH CARON
|
|
$2518: Result:=$d9; // BOX DRAWINGS LIGHT UP AND LEFT
|
|
$250c: Result:=$da; // BOX DRAWINGS LIGHT DOWN AND RIGHT
|
|
$2588: Result:=$db; // FULL BLOCK
|
|
$2584: Result:=$dc; // LOWER HALF BLOCK
|
|
$0162: Result:=$dd; // LATIN CAPITAL LETTER T WITH CEDILLA
|
|
$016e: Result:=$de; // LATIN CAPITAL LETTER U WITH RING ABOVE
|
|
$2580: Result:=$df; // UPPER HALF BLOCK
|
|
$00d3: Result:=$e0; // LATIN CAPITAL LETTER O WITH ACUTE
|
|
$00df: Result:=$e1; // LATIN SMALL LETTER SHARP S
|
|
$00d4: Result:=$e2; // LATIN CAPITAL LETTER O WITH CIRCUMFLEX
|
|
$0143: Result:=$e3; // LATIN CAPITAL LETTER N WITH ACUTE
|
|
$0144: Result:=$e4; // LATIN SMALL LETTER N WITH ACUTE
|
|
$0148: Result:=$e5; // LATIN SMALL LETTER N WITH CARON
|
|
$0160: Result:=$e6; // LATIN CAPITAL LETTER S WITH CARON
|
|
$0161: Result:=$e7; // LATIN SMALL LETTER S WITH CARON
|
|
$0154: Result:=$e8; // LATIN CAPITAL LETTER R WITH ACUTE
|
|
$00da: Result:=$e9; // LATIN CAPITAL LETTER U WITH ACUTE
|
|
$0155: Result:=$ea; // LATIN SMALL LETTER R WITH ACUTE
|
|
$0170: Result:=$eb; // LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
|
|
$00fd: Result:=$ec; // LATIN SMALL LETTER Y WITH ACUTE
|
|
$00dd: Result:=$ed; // LATIN CAPITAL LETTER Y WITH ACUTE
|
|
$0163: Result:=$ee; // LATIN SMALL LETTER T WITH CEDILLA
|
|
$00b4: Result:=$ef; // ACUTE ACCENT
|
|
$00ad: Result:=$f0; // SOFT HYPHEN
|
|
$02dd: Result:=$f1; // DOUBLE ACUTE ACCENT
|
|
$02db: Result:=$f2; // OGONEK
|
|
$02c7: Result:=$f3; // CARON
|
|
$02d8: Result:=$f4; // BREVE
|
|
$00a7: Result:=$f5; // SECTION SIGN
|
|
$00f7: Result:=$f6; // DIVISION SIGN
|
|
$00b8: Result:=$f7; // CEDILLA
|
|
$00b0: Result:=$f8; // DEGREE SIGN
|
|
$00a8: Result:=$f9; // DIAERESIS
|
|
$02d9: Result:=$fa; // DOT ABOVE
|
|
$0171: Result:=$fb; // LATIN SMALL LETTER U WITH DOUBLE ACUTE
|
|
$0158: Result:=$fc; // LATIN CAPITAL LETTER R WITH CARON
|
|
$0159: Result:=$fd; // LATIN SMALL LETTER R WITH CARON
|
|
$25a0: Result:=$fe; // BLACK SQUARE
|
|
$00a0: Result:=$ff; // NO-BREAK SPACE
|
|
else Result:=-1;
|
|
end;
|
|
end;
|
|
|
|
function UnicodeToCP866(Unicode: cardinal): integer;
|
|
begin
|
|
case Unicode of
|
|
0..127: Result:=Unicode;
|
|
1040..1087 : Result := Unicode-912;
|
|
9617..9619 : Result := Unicode-9441;
|
|
9474 : Result := 179;
|
|
9508 : Result := 180;
|
|
9569 : Result := 181;
|
|
9570 : Result := 182;
|
|
9558 : Result := 183;
|
|
9557 : Result := 184;
|
|
9571 : Result := 185;
|
|
9553 : Result := 186;
|
|
9559 : Result := 187;
|
|
9565 : Result := 188;
|
|
9564 : Result := 189;
|
|
9563 : Result := 190;
|
|
9488 : Result := 191;
|
|
9492 : Result := 192;
|
|
9524 : Result := 193;
|
|
9516 : Result := 194;
|
|
9500 : Result := 195;
|
|
9472 : Result := 196;
|
|
9532 : Result := 197;
|
|
9566 : Result := 198;
|
|
9567 : Result := 199;
|
|
9562 : Result := 200;
|
|
9556 : Result := 201;
|
|
9577 : Result := 202;
|
|
9574 : Result := 203;
|
|
9568 : Result := 204;
|
|
9552 : Result := 205;
|
|
9580 : Result := 206;
|
|
9575 : Result := 207;
|
|
9576 : Result := 208;
|
|
9572 : Result := 209;
|
|
9573 : Result := 210;
|
|
9561 : Result := 211;
|
|
9560 : Result := 212;
|
|
9554 : Result := 213;
|
|
9555 : Result := 214;
|
|
9579 : Result := 215;
|
|
9578 : Result := 216;
|
|
9496 : Result := 217;
|
|
9484 : Result := 218;
|
|
9608 : Result := 219;
|
|
9604 : Result := 220;
|
|
9612 : Result := 221;
|
|
9616 : Result := 222;
|
|
9600 : Result := 223;
|
|
1088..1103 : Result := Unicode-864;
|
|
1025 : Result := 240;
|
|
1105 : Result := 241;
|
|
1028 : Result := 242;
|
|
1108 : Result := 243;
|
|
1031 : Result := 244;
|
|
1111 : Result := 245;
|
|
1038 : Result := 246;
|
|
1118 : Result := 247;
|
|
176 : Result := 248;
|
|
8729 : Result := 249;
|
|
183 : Result := 250;
|
|
8730 : Result := 251;
|
|
8470 : Result := 252;
|
|
164 : Result := 253;
|
|
9632 : Result := 254;
|
|
160 : Result := 255;
|
|
else Result:=-1;
|
|
end;
|
|
end;
|
|
|
|
function UnicodeToCP874(Unicode: cardinal): integer;
|
|
begin
|
|
case Unicode of
|
|
0..127: Result:=Unicode;
|
|
160: Result:=160;
|
|
3585..3642: Result:=Unicode-3424;
|
|
3647..3675: Result:=Unicode-3424;
|
|
8211..8212: Result:=Unicode-8061;
|
|
8216..8217: Result:=Unicode-8071;
|
|
8220..8221: Result:=Unicode-8073;
|
|
8226: Result:=149;
|
|
8230: Result:=133;
|
|
8364: Result:=128;
|
|
else Result:=-1;
|
|
end;
|
|
end;
|
|
|
|
function UnicodeToKOI8(Unicode: cardinal): integer;
|
|
begin
|
|
case Unicode of
|
|
0..127: Result:=Unicode;
|
|
1040..1041: Result:=Unicode-815;
|
|
1042: Result:=247;
|
|
1043: Result:=231;
|
|
1044..1045: Result:=Unicode-816;
|
|
1046: Result:=246;
|
|
1047: Result:=250;
|
|
1048..1055: Result:=Unicode-815;
|
|
1056..1059: Result:=Unicode-814;
|
|
1060: Result:=230;
|
|
1061: Result:=232;
|
|
1062: Result:=227;
|
|
1063: Result:=254;
|
|
1064: Result:=251;
|
|
1065: Result:=253;
|
|
1067: Result:=249;
|
|
1068: Result:=248;
|
|
1069: Result:=252;
|
|
1070: Result:=224;
|
|
1071: Result:=241;
|
|
1072..1073: Result:=Unicode-879;
|
|
1074: Result:=215;
|
|
1075: Result:=199;
|
|
1076..1077: Result:=Unicode-880;
|
|
1078: Result:=214;
|
|
1079: Result:=218;
|
|
1080..1087: Result:=Unicode-879;
|
|
1088..1091: Result:=Unicode-878;
|
|
1092: Result:=198;
|
|
1093: Result:=200;
|
|
1094: Result:=195;
|
|
1095: Result:=222;
|
|
1096: Result:=219;
|
|
1097: Result:=221;
|
|
1098: Result:=223;
|
|
1099: Result:=217;
|
|
1100: Result:=216;
|
|
1101: Result:=220;
|
|
1102: Result:=192;
|
|
1103: Result:=209;
|
|
else Result:=-1;
|
|
end;
|
|
end;
|
|
|
|
function UnicodeToISO_8859_1(Unicode: cardinal): integer;
|
|
begin
|
|
case Unicode of
|
|
0..255: Result:=Unicode;
|
|
else Result:=-1;
|
|
end;
|
|
end;
|
|
|
|
function UnicodeToISO_8859_2(Unicode: cardinal): integer;
|
|
begin
|
|
case Unicode of
|
|
0..127: Result:=Unicode;
|
|
128..160: Result:=Unicode;
|
|
164: Result:=164;
|
|
167..168: Result:=Unicode;
|
|
173: Result:=173;
|
|
176: Result:=176;
|
|
180: Result:=180;
|
|
184: Result:=184;
|
|
193..194: Result:=Unicode;
|
|
196: Result:=196;
|
|
199: Result:=199;
|
|
201: Result:=201;
|
|
203: Result:=203;
|
|
205..206: Result:=Unicode;
|
|
211..212: Result:=Unicode;
|
|
214..215: Result:=Unicode;
|
|
218: Result:=218;
|
|
220..221: Result:=Unicode;
|
|
223: Result:=223;
|
|
225..226: Result:=Unicode;
|
|
228: Result:=228;
|
|
231: Result:=231;
|
|
233: Result:=233;
|
|
235: Result:=235;
|
|
237..238: Result:=Unicode;
|
|
243..244: Result:=Unicode;
|
|
246..247: Result:=Unicode;
|
|
250: Result:=250;
|
|
252..253: Result:=Unicode;
|
|
258: Result:=195;
|
|
259: Result:=227;
|
|
260: Result:=161;
|
|
261: Result:=177;
|
|
262: Result:=198;
|
|
263: Result:=230;
|
|
268: Result:=200;
|
|
269: Result:=232;
|
|
270: Result:=207;
|
|
271: Result:=239;
|
|
272: Result:=208;
|
|
273: Result:=240;
|
|
280: Result:=202;
|
|
281: Result:=234;
|
|
282: Result:=204;
|
|
283: Result:=236;
|
|
313: Result:=197;
|
|
314: Result:=229;
|
|
317: Result:=165;
|
|
318: Result:=181;
|
|
321: Result:=163;
|
|
322: Result:=179;
|
|
323: Result:=209;
|
|
324: Result:=241;
|
|
327: Result:=210;
|
|
328: Result:=242;
|
|
336: Result:=213;
|
|
337: Result:=245;
|
|
340: Result:=192;
|
|
341: Result:=224;
|
|
344: Result:=216;
|
|
345: Result:=248;
|
|
346: Result:=166;
|
|
347: Result:=182;
|
|
350: Result:=170;
|
|
351: Result:=186;
|
|
352: Result:=169;
|
|
353: Result:=185;
|
|
354: Result:=222;
|
|
355: Result:=254;
|
|
356: Result:=171;
|
|
357: Result:=187;
|
|
366: Result:=217;
|
|
367: Result:=249;
|
|
368: Result:=219;
|
|
369: Result:=251;
|
|
377: Result:=172;
|
|
378: Result:=188;
|
|
379: Result:=175;
|
|
380: Result:=191;
|
|
381: Result:=174;
|
|
382: Result:=190;
|
|
711: Result:=183;
|
|
728: Result:=162;
|
|
729: Result:=255;
|
|
731: Result:=178;
|
|
733: Result:=189;
|
|
else Result:=-1;
|
|
end;
|
|
end;
|
|
|
|
function UTF8ToUTF8BOM(const s: string): string;
|
|
begin
|
|
Result:=UTF8BOM+s;
|
|
end;
|
|
|
|
function UTF8ToISO_8859_1(const s: string): string;
|
|
begin
|
|
Result:=UTF8ToSingleByte(s,@UnicodeToISO_8859_1);
|
|
end;
|
|
|
|
function UTF8ToISO_8859_2(const s: string): string;
|
|
begin
|
|
Result:=UTF8ToSingleByte(s,@UnicodeToISO_8859_2);
|
|
end;
|
|
|
|
function UTF8ToCP1250(const s: string): string;
|
|
begin
|
|
Result:=UTF8ToSingleByte(s,@UnicodeToCP1250);
|
|
end;
|
|
|
|
function UTF8ToCP1251(const s: string): string;
|
|
begin
|
|
Result:=UTF8ToSingleByte(s,@UnicodeToCP1251);
|
|
end;
|
|
|
|
function UTF8ToCP1252(const s: string): string;
|
|
begin
|
|
Result:=UTF8ToSingleByte(s,@UnicodeToCP1252);
|
|
end;
|
|
|
|
function UTF8ToCP1253(const s: string): string;
|
|
begin
|
|
Result:=UTF8ToSingleByte(s,@UnicodeToCP1253);
|
|
end;
|
|
|
|
function UTF8ToCP1254(const s: string): string;
|
|
begin
|
|
Result:=UTF8ToSingleByte(s,@UnicodeToCP1254);
|
|
end;
|
|
|
|
function UTF8ToCP1255(const s: string): string;
|
|
begin
|
|
Result:=UTF8ToSingleByte(s,@UnicodeToCP1255);
|
|
end;
|
|
|
|
function UTF8ToCP1256(const s: string): string;
|
|
begin
|
|
Result:=UTF8ToSingleByte(s,@UnicodeToCP1256);
|
|
end;
|
|
|
|
function UTF8ToCP1257(const s: string): string;
|
|
begin
|
|
Result:=UTF8ToSingleByte(s,@UnicodeToCP1257);
|
|
end;
|
|
|
|
function UTF8ToCP1258(const s: string): string;
|
|
begin
|
|
Result:=UTF8ToSingleByte(s,@UnicodeToCP1258);
|
|
end;
|
|
|
|
function UTF8ToCP437(const s: string): string;
|
|
begin
|
|
Result:=UTF8ToSingleByte(s,@UnicodeToCP437);
|
|
end;
|
|
|
|
function UTF8ToCP850(const s: string): string;
|
|
begin
|
|
Result:=UTF8ToSingleByte(s,@UnicodeToCP850);
|
|
end;
|
|
|
|
function UTF8ToCP852(const s: string): string;
|
|
begin
|
|
Result:=UTF8ToSingleByte(s,@UnicodeToCP852);
|
|
end;
|
|
|
|
function UTF8ToCP866(const s: string): string;
|
|
begin
|
|
Result:=UTF8ToSingleByte(s,@UnicodeToCP866);
|
|
end;
|
|
|
|
function UTF8ToCP874(const s: string): string;
|
|
begin
|
|
Result:=UTF8ToSingleByte(s,@UnicodeToCP874);
|
|
end;
|
|
|
|
function UTF8ToKOI8(const s: string): string;
|
|
begin
|
|
Result:=UTF8ToSingleByte(s,@UnicodeToKOI8);
|
|
end;
|
|
|
|
function UTF8ToSingleByte(const s: string;
|
|
const UTF8CharConvFunc: TUnicodeToCharID): string;
|
|
var
|
|
len: Integer;
|
|
Src: PChar;
|
|
Dest: PChar;
|
|
c: Char;
|
|
Unicode: LongWord;
|
|
CharLen: integer;
|
|
i: integer;
|
|
begin
|
|
if s='' then begin
|
|
Result:='';
|
|
exit;
|
|
end;
|
|
len:=length(s);
|
|
SetLength(Result,len);
|
|
Src:=PChar(s);
|
|
Dest:=PChar(Result);
|
|
while len>0 do begin
|
|
c:=Src^;
|
|
if c<#128 then begin
|
|
Dest^:=c;
|
|
inc(Dest);
|
|
inc(Src);
|
|
dec(len);
|
|
end else begin
|
|
Unicode:=UTF8CharacterToUnicode(Src,CharLen);
|
|
inc(Src,CharLen);
|
|
dec(len,CharLen);
|
|
i:=UTF8CharConvFunc(Unicode);
|
|
if i>=0 then begin
|
|
Dest^:=chr(i);
|
|
inc(Dest);
|
|
end;
|
|
end;
|
|
end;
|
|
SetLength(Result,Dest-PChar(Result));
|
|
end;
|
|
|
|
function UTF8ToUCS2LE(const s: string): string;
|
|
var
|
|
len: Integer;
|
|
Src: PChar;
|
|
Dest: PWord;
|
|
c: Char;
|
|
Unicode: LongWord;
|
|
CharLen: integer;
|
|
begin
|
|
if s='' then begin
|
|
Result:='';
|
|
exit;
|
|
end;
|
|
len:=length(s);
|
|
SetLength(Result,len*2);
|
|
Src:=PChar(s);
|
|
Dest:=PWord(Pointer(Result));
|
|
while len>0 do begin
|
|
c:=Src^;
|
|
if c<#128 then begin
|
|
Dest^:=NtoLE(Word(ord(c)));
|
|
inc(Dest);
|
|
inc(Src);
|
|
dec(len);
|
|
end else begin
|
|
Unicode:=UTF8CharacterToUnicode(Src,CharLen);
|
|
inc(Src,CharLen);
|
|
dec(len,CharLen);
|
|
if Unicode<=$ffff then begin
|
|
Dest^:=NtoLE(Word(Unicode));
|
|
inc(Dest);
|
|
end;
|
|
end;
|
|
end;
|
|
len:={%H-}PtrUInt(Dest)-PtrUInt(Result);
|
|
if len>length(Result) then
|
|
raise Exception.Create('');
|
|
SetLength(Result,len);
|
|
end;
|
|
|
|
function UTF8ToUCS2BE(const s: string): string;
|
|
var
|
|
len: Integer;
|
|
Src: PChar;
|
|
Dest: PWord;
|
|
c: Char;
|
|
Unicode: LongWord;
|
|
CharLen: integer;
|
|
begin
|
|
if s='' then begin
|
|
Result:='';
|
|
exit;
|
|
end;
|
|
len:=length(s);
|
|
SetLength(Result,len*2);
|
|
Src:=PChar(s);
|
|
Dest:=PWord(Pointer(Result));
|
|
while len>0 do begin
|
|
c:=Src^;
|
|
if c<#128 then begin
|
|
Dest^:=NtoBE(Word(ord(c)));
|
|
inc(Dest);
|
|
inc(Src);
|
|
dec(len);
|
|
end else begin
|
|
Unicode:=UTF8CharacterToUnicode(Src,CharLen);
|
|
inc(Src,CharLen);
|
|
dec(len,CharLen);
|
|
if Unicode<=$ffff then begin
|
|
Dest^:=NtoBE(Word(Unicode));
|
|
inc(Dest);
|
|
end;
|
|
end;
|
|
end;
|
|
len:={%H-}PtrUInt(Dest)-PtrUInt(Result);
|
|
if len>length(Result) then
|
|
raise Exception.Create('');
|
|
SetLength(Result,len);
|
|
end;
|
|
|
|
procedure GetSupportedEncodings(List: TStrings);
|
|
begin
|
|
List.Add('UTF-8');
|
|
List.Add('UTF-8BOM');
|
|
List.Add('Ansi');
|
|
List.Add('CP1250');
|
|
List.Add('CP1251');
|
|
List.Add('CP1252');
|
|
List.Add('CP1253');
|
|
List.Add('CP1254');
|
|
List.Add('CP1255');
|
|
List.Add('CP1256');
|
|
List.Add('CP1257');
|
|
List.Add('CP1258');
|
|
List.Add('CP437');
|
|
List.Add('CP850');
|
|
List.Add('CP852');
|
|
List.Add('CP866');
|
|
List.Add('CP874');
|
|
|
|
{$IFNDEF DisableAsianCodePages}
|
|
// asian
|
|
List.Add('CP932');
|
|
List.Add('CP936');
|
|
List.Add('CP949');
|
|
List.Add('CP950');
|
|
{$ENDIF}
|
|
|
|
List.Add('ISO-8859-1');
|
|
List.Add('ISO-8859-2');
|
|
List.Add('KOI-8');
|
|
List.Add('UCS-2LE');
|
|
List.Add('UCS-2BE');
|
|
end;
|
|
|
|
function GuessEncoding(const s: string): string;
|
|
|
|
function CompareI(p1, p2: PChar; Count: integer): boolean;
|
|
var
|
|
i: Integer;
|
|
Chr1: Byte;
|
|
Chr2: Byte;
|
|
begin
|
|
for i:=1 to Count do begin
|
|
Chr1 := byte(p1^);
|
|
Chr2 := byte(p2^);
|
|
if Chr1<>Chr2 then begin
|
|
if Chr1 in [97..122] then
|
|
dec(Chr1,32);
|
|
if Chr2 in [97..122] then
|
|
dec(Chr2,32);
|
|
if Chr1<>Chr2 then exit(false);
|
|
end;
|
|
inc(p1);
|
|
inc(p2);
|
|
end;
|
|
Result:=true;
|
|
end;
|
|
|
|
{$IFDEF VerboseIDEEncoding}
|
|
function PosToStr(p: integer): string;
|
|
var
|
|
y: Integer;
|
|
x: Integer;
|
|
i: Integer;
|
|
begin
|
|
y:=1;
|
|
x:=1;
|
|
i:=1;
|
|
while (i<=length(s)) and (i<p) do begin
|
|
if s[i] in [#10,#13] then begin
|
|
inc(i);
|
|
x:=1;
|
|
inc(y);
|
|
if (i<=length(s)) and (s[i] in [#10,#13]) and (s[i]<>s[i-1]) then
|
|
inc(i);
|
|
end else begin
|
|
inc(i);
|
|
inc(x);
|
|
end;
|
|
end;
|
|
Result:='x='+IntToStr(x)+',y='+IntToStr(y);
|
|
end;
|
|
{$ENDIF}
|
|
|
|
var
|
|
l: Integer;
|
|
p: PChar;
|
|
EndPos: PChar;
|
|
i: LongInt;
|
|
begin
|
|
l:=length(s);
|
|
if l=0 then begin
|
|
Result:='';
|
|
exit;
|
|
end;
|
|
p:=PChar(s);
|
|
|
|
// try UTF-8 BOM (Byte Order Mark)
|
|
if CompareI(p,UTF8BOM,3) then begin
|
|
Result:=EncodingUTF8BOM;
|
|
exit;
|
|
end;
|
|
|
|
// try ucs-2le BOM FF FE (ToDo: nowadays this BOM is UTF16LE)
|
|
if (p^=#$FF) and (p[1]=#$FE) then begin
|
|
Result:=EncodingUCS2LE;
|
|
exit;
|
|
end;
|
|
|
|
// try ucs-2be BOM FE FF (ToDo: nowadays this BOM is UTF16BE)
|
|
if (p^=#$FE) and (p[1]=#$FF) then begin
|
|
Result:=EncodingUCS2BE;
|
|
exit;
|
|
end;
|
|
|
|
// try {%encoding eee}
|
|
if CompareI(p,'{%encoding ',11) then begin
|
|
inc(p,length('{%encoding '));
|
|
while (p^ in [' ',#9]) do inc(p);
|
|
EndPos:=p;
|
|
while not (EndPos^ in ['}',' ',#9,#0]) do inc(EndPos);
|
|
Result:=NormalizeEncoding(copy(s,p-PChar(s)+1,EndPos-p));
|
|
exit;
|
|
end;
|
|
|
|
// try UTF-8 (this includes ASCII)
|
|
p:=PChar(s);
|
|
repeat
|
|
if ord(p^)<128 then begin
|
|
// ASCII
|
|
if (p^=#0) and (p-PChar(s)>=l) then begin
|
|
Result:=EncodingUTF8;
|
|
exit;
|
|
end;
|
|
inc(p);
|
|
end else begin
|
|
i:=UTF8CharacterStrictLength(p);
|
|
//DebugLn(['GuessEncoding ',i,' ',DbgStr(s[p])]);
|
|
if i=0 then begin
|
|
{$IFDEF VerboseIDEEncoding}
|
|
DebugLn(['GuessEncoding non UTF-8 found at ',PosToStr(p-PChar(s)+1),' ',dbgstr(copy(s,p-PChar(s)-10,20))]);
|
|
{$ENDIF}
|
|
break;
|
|
end;
|
|
inc(p,i);
|
|
end;
|
|
until false;
|
|
|
|
// use system encoding
|
|
Result:=GetDefaultTextEncoding;
|
|
|
|
if NormalizeEncoding(Result)=EncodingUTF8 then begin
|
|
// the system encoding is UTF-8, but the text is not UTF-8
|
|
// use ISO-8859-1 instead. This encoding has a full 1:1 mapping to unicode,
|
|
// so no character is lost during conversion back and forth.
|
|
Result:='ISO-8859-1';
|
|
end;
|
|
end;
|
|
|
|
function ConvertEncoding(const s, FromEncoding, ToEncoding: string): string;
|
|
var
|
|
AFrom, ATo, SysEnc : String;
|
|
Encoded : Boolean;
|
|
{$ifdef EnableIconvEnc}
|
|
Dummy: String;
|
|
{$endif}
|
|
begin
|
|
AFrom:=NormalizeEncoding(FromEncoding);
|
|
ATo:=NormalizeEncoding(ToEncoding);
|
|
SysEnc:=NormalizeEncoding(GetDefaultTextEncoding);
|
|
if AFrom=EncodingAnsi then AFrom:=SysEnc
|
|
else if AFrom='' then AFrom:=EncodingUTF8;
|
|
if ATo=EncodingAnsi then ATo:=SysEnc
|
|
else if ATo='' then ATo:=EncodingUTF8;
|
|
if AFrom=ATo then begin
|
|
Result:=s;
|
|
exit;
|
|
end;
|
|
if s='' then begin
|
|
if ATo=EncodingUTF8BOM then
|
|
Result:=UTF8BOM;
|
|
exit;
|
|
end;
|
|
//DebugLn(['ConvertEncoding ',AFrom,' ',ATo]);
|
|
|
|
if (AFrom=EncodingUTF8) then begin
|
|
if ATo=EncodingUTF8BOM then begin Result:=UTF8ToUTF8BOM(s); exit; end;
|
|
if ATo='iso88591' then begin Result:=UTF8ToISO_8859_1(s); exit; end;
|
|
if ATo='iso88592' then begin Result:=UTF8ToISO_8859_2(s); exit; end;
|
|
if ATo='cp1250' then begin Result:=UTF8ToCP1250(s); exit; end;
|
|
if ATo='cp1251' then begin Result:=UTF8ToCP1251(s); exit; end;
|
|
if ATo='cp1252' then begin Result:=UTF8ToCP1252(s); exit; end;
|
|
if ATo='cp1253' then begin Result:=UTF8ToCP1253(s); exit; end;
|
|
if ATo='cp1254' then begin Result:=UTF8ToCP1254(s); exit; end;
|
|
if ATo='cp1255' then begin Result:=UTF8ToCP1255(s); exit; end;
|
|
if ATo='cp1256' then begin Result:=UTF8ToCP1256(s); exit; end;
|
|
if ATo='cp1257' then begin Result:=UTF8ToCP1257(s); exit; end;
|
|
if ATo='cp1258' then begin Result:=UTF8ToCP1258(s); exit; end;
|
|
if ATo='cp437' then begin Result:=UTF8ToCP437(s); exit; end;
|
|
if ATo='cp850' then begin Result:=UTF8ToCP850(s); exit; end;
|
|
if ATo='cp852' then begin Result:=UTF8ToCP852(s); exit; end;
|
|
if ATo='cp866' then begin Result:=UTF8ToCP866(s); exit; end;
|
|
if ATo='cp874' then begin Result:=UTF8ToCP874(s); exit; end;
|
|
{$IFNDEF DisableAsianCodePages}
|
|
if ATo='cp936' then begin Result := UTF8ToCP936(s); exit; end;
|
|
if ATo='cp950' then begin Result := UTF8ToCP950(s); exit; end;
|
|
if ATo='cp949' then begin Result := UTF8ToCP949(s); exit; end;
|
|
if ATo='cp932' then begin Result := UTF8ToCP932(s); exit; end;
|
|
{$ENDIF}
|
|
if ATo='koi8' then begin Result:=UTF8ToKOI8(s); exit; end;
|
|
if ATo=EncodingUCS2LE then begin Result:=UTF8ToUCS2LE(s); exit; end;
|
|
if ATo=EncodingUCS2BE then begin Result:=UTF8ToUCS2BE(s); exit; end;
|
|
|
|
if (ATo=SysEnc) and Assigned(ConvertUTF8ToAnsi) then begin
|
|
Result:=ConvertUTF8ToAnsi(s);
|
|
exit;
|
|
end;
|
|
end else if ATo=EncodingUTF8 then begin
|
|
if AFrom=EncodingUTF8BOM then begin Result:=UTF8BOMToUTF8(s); exit; end;
|
|
if AFrom='iso88591' then begin Result:=ISO_8859_1ToUTF8(s); exit; end;
|
|
if AFrom='iso88592' then begin Result:=ISO_8859_2ToUTF8(s); exit; end;
|
|
if AFrom='cp1250' then begin Result:=CP1250ToUTF8(s); exit; end;
|
|
if AFrom='cp1251' then begin Result:=CP1251ToUTF8(s); exit; end;
|
|
if AFrom='cp1252' then begin Result:=CP1252ToUTF8(s); exit; end;
|
|
if AFrom='cp1253' then begin Result:=CP1253ToUTF8(s); exit; end;
|
|
if AFrom='cp1254' then begin Result:=CP1254ToUTF8(s); exit; end;
|
|
if AFrom='cp1255' then begin Result:=CP1255ToUTF8(s); exit; end;
|
|
if AFrom='cp1256' then begin Result:=CP1256ToUTF8(s); exit; end;
|
|
if AFrom='cp1257' then begin Result:=CP1257ToUTF8(s); exit; end;
|
|
if AFrom='cp1258' then begin Result:=CP1258ToUTF8(s); exit; end;
|
|
if AFrom='cp437' then begin Result:=CP437ToUTF8(s); exit; end;
|
|
if AFrom='cp850' then begin Result:=CP850ToUTF8(s); exit; end;
|
|
if AFrom='cp852' then begin Result:=CP852ToUTF8(s); exit; end;
|
|
if AFrom='cp866' then begin Result:=CP866ToUTF8(s); exit; end;
|
|
if AFrom='cp874' then begin Result:=CP874ToUTF8(s); exit; end;
|
|
{$IFNDEF DisableAsianCodePages}
|
|
if AFrom='cp936' then begin Result := CP936ToUTF8(s); exit; end;
|
|
if AFrom='cp950' then begin Result := CP950ToUTF8(s); exit; end;
|
|
if AFrom='cp949' then begin Result := CP949ToUTF8(s); exit; end;
|
|
if AFrom='cp932' then begin Result := CP932ToUTF8(s); exit; end;
|
|
{$ENDIF}
|
|
if AFrom='koi8' then begin Result:=KOI8ToUTF8(s); exit; end;
|
|
if AFrom=EncodingUCS2LE then begin Result:=UCS2LEToUTF8(s); exit; end;
|
|
if AFrom=EncodingUCS2BE then begin Result:=UCS2BEToUTF8(s); exit; end;
|
|
|
|
if (AFrom=SysEnc) and Assigned(ConvertAnsiToUTF8) then begin
|
|
Result:=ConvertAnsiToUTF8(s);
|
|
exit;
|
|
end;
|
|
end
|
|
else begin
|
|
//ATo and AFrom <> EncodingUTF8. Need to do ANSI->UTF8->ANSI.
|
|
//TempStr := s;
|
|
Encoded := false;
|
|
|
|
//ANSI->UTF8
|
|
if AFrom='iso88591' then begin
|
|
Result:=ISO_8859_1ToUTF8(s);
|
|
Encoded := true;
|
|
end
|
|
else if AFrom='iso88592' then begin
|
|
Result:=ISO_8859_2ToUTF8(s);
|
|
Encoded := true;
|
|
end
|
|
else if AFrom='cp1250' then begin
|
|
Result:=CP1250ToUTF8(s);
|
|
Encoded := true;
|
|
end
|
|
else if AFrom='cp1251' then begin
|
|
Result:=CP1251ToUTF8(s);
|
|
Encoded := true;
|
|
end
|
|
else if AFrom='cp1252' then begin
|
|
Result:=CP1252ToUTF8(s);
|
|
Encoded := true;
|
|
end
|
|
else if AFrom='cp1253' then begin
|
|
Result:=CP1253ToUTF8(s);
|
|
Encoded := true;
|
|
end
|
|
else if AFrom='cp1254' then begin
|
|
Result:=CP1254ToUTF8(s);
|
|
Encoded := true;
|
|
end
|
|
else if AFrom='cp1255' then begin
|
|
Result:=CP1255ToUTF8(s);
|
|
Encoded := true;
|
|
end
|
|
else if AFrom='cp1256' then begin
|
|
Result:=CP1256ToUTF8(s);
|
|
Encoded := true;
|
|
end
|
|
else if AFrom='cp1257' then begin
|
|
Result:=CP1257ToUTF8(s);
|
|
Encoded := true;
|
|
end
|
|
else if AFrom='cp1258' then begin
|
|
Result:=CP1258ToUTF8(s);
|
|
Encoded := true;
|
|
end
|
|
else if AFrom='cp850' then begin
|
|
Result:=CP850ToUTF8(s);
|
|
Encoded := true;
|
|
end
|
|
else if AFrom='cp852' then begin
|
|
Result:=CP852ToUTF8(s);
|
|
Encoded := true;
|
|
end
|
|
else if AFrom='cp866' then begin
|
|
Result:=CP866ToUTF8(s);
|
|
Encoded := true;
|
|
end
|
|
else if AFrom='cp874' then begin
|
|
Result:=CP874ToUTF8(s);
|
|
Encoded := true;
|
|
end
|
|
{$IFNDEF DisableAsianCodePages}
|
|
else if AFrom = 'cp936' then
|
|
begin
|
|
Result := CP936ToUTF8(s);
|
|
Encoded := True;
|
|
end
|
|
else if AFrom = 'cp950' then
|
|
begin
|
|
Result := CP950ToUTF8(s);
|
|
Encoded := True;
|
|
end
|
|
else if AFrom = 'cp949' then
|
|
begin
|
|
Result := CP949ToUTF8(s);
|
|
Encoded := True;
|
|
end
|
|
else if AFrom = 'cp932' then
|
|
begin
|
|
Result := CP932ToUTF8(s);
|
|
Encoded := True;
|
|
end
|
|
{$ENDIF}
|
|
else if AFrom='koi8' then begin
|
|
Result:=KOI8ToUTF8(s);
|
|
Encoded := true;
|
|
end
|
|
else if (AFrom=SysEnc) and Assigned(ConvertAnsiToUTF8) then begin
|
|
Result:=ConvertAnsiToUTF8(s);
|
|
Encoded := true;
|
|
end;
|
|
|
|
if Encoded = true then begin
|
|
//UTF8->ANSI
|
|
Encoded := false;
|
|
if ATo='iso88591' then begin
|
|
Result:=UTF8ToISO_8859_1(Result);
|
|
Encoded := true;
|
|
end
|
|
else if ATo='iso88592' then begin
|
|
Result:=UTF8ToISO_8859_2(Result);
|
|
Encoded := true;
|
|
end
|
|
else if ATo='cp1250' then begin
|
|
Result:=UTF8ToCP1250(Result);
|
|
Encoded := true;
|
|
end
|
|
else if ATo='cp1251' then begin
|
|
Result:=UTF8ToCP1251(Result);
|
|
Encoded := true;
|
|
end
|
|
else if ATo='cp1252' then begin
|
|
Result:=UTF8ToCP1252(Result);
|
|
Encoded := true;
|
|
end
|
|
else if ATo='cp1253' then begin
|
|
Result:=UTF8ToCP1253(Result);
|
|
Encoded := true;
|
|
end
|
|
else if ATo='cp1254' then begin
|
|
Result:=UTF8ToCP1254(Result);
|
|
Encoded := true;
|
|
end
|
|
else if ATo='cp1255' then begin
|
|
Result:=UTF8ToCP1255(Result);
|
|
Encoded := true;
|
|
end
|
|
else if ATo='cp1256' then begin
|
|
Result:=UTF8ToCP1256(Result);
|
|
Encoded := true;
|
|
end
|
|
else if ATo='cp1257' then begin
|
|
Result:=UTF8ToCP1257(Result);
|
|
Encoded := true;
|
|
end
|
|
else if ATo='cp1258' then begin
|
|
Result:=UTF8ToCP1258(Result);
|
|
Encoded := true;
|
|
end
|
|
else if ATo='cp850' then begin
|
|
Result:=UTF8ToCP850(Result);
|
|
Encoded := true;
|
|
end
|
|
else if ATo='cp852' then begin
|
|
Result:=UTF8ToCP852(Result);
|
|
Encoded := true;
|
|
end
|
|
else if ATo='cp866' then begin
|
|
Result:=UTF8ToCP866(Result);
|
|
Encoded := true;
|
|
end
|
|
else if ATo='cp874' then begin
|
|
Result:=UTF8ToCP874(Result);
|
|
Encoded := true;
|
|
end
|
|
{$IFNDEF DisableAsianCodePages}
|
|
else if ATo = 'cp936' then
|
|
begin
|
|
Result := UTF8ToCP936(Result);
|
|
Encoded := True;
|
|
end
|
|
else if ATo = 'cp950' then
|
|
begin
|
|
Result := UTF8ToCP950(Result);
|
|
Encoded := True;
|
|
end
|
|
else if ATo = 'cp949' then
|
|
begin
|
|
Result := UTF8ToCP949(Result);
|
|
Encoded := True;
|
|
end
|
|
else if ATo = 'cp932' then
|
|
begin
|
|
Result := UTF8ToCP932(Result);
|
|
Encoded := True;
|
|
end
|
|
{$ENDIF}
|
|
else if ATo='koi8' then begin
|
|
Result:=UTF8ToKOI8(Result);
|
|
Encoded := true;
|
|
end
|
|
else if (ATo=SysEnc) and Assigned(ConvertUTF8ToAnsi) then begin
|
|
Result:=ConvertUTF8ToAnsi(Result);
|
|
Encoded := true;
|
|
end;
|
|
end;
|
|
|
|
//Exit if encoded succesfully.
|
|
if Encoded = true then begin
|
|
exit;
|
|
end;
|
|
|
|
end;
|
|
|
|
Result:=s;
|
|
{$ifdef EnableIconvEnc}
|
|
try
|
|
if not IconvLibFound and not InitIconv(Dummy) then
|
|
begin
|
|
{$IFNDEF DisableChecks}
|
|
DebugLn(['Can not init iconv: ',Dummy]);
|
|
{$ENDIF}
|
|
Exit;
|
|
end;
|
|
if Iconvert(s, Result, AFrom, ATo)<>0 then
|
|
begin
|
|
Result:=s;
|
|
Exit;
|
|
end;
|
|
except
|
|
end;
|
|
{$endif}
|
|
end;
|
|
|
|
end.
|