;========================================================================================================================================== ; ; How to convert between codepages? ; How to convert string content from one codepage to another codepage? ; ; Example for conversion from codepage 850 to 1252. ; ; (c)Detlev Dalitz.20100217.20100219. ;========================================================================================================================================== ; Set work folder to script folder. DirChange (DirScript ()) ;------------------------------------------------------------------------------------------------------------------------------------------; ; Step 1. ; We get the codepages from unicode.org, archived as text files. ;------------------------------------------------------------------------------------------------------------------------------------------; strFileCPFrom = "CP850.txt" ; Filename for codepage from http://unicode.org/Public/MAPPINGS/VENDORS/MICSFT/PC/CP850.TXT strFileCPTo = "CP1252.txt" ; Filename for codepage from http://unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WINDOWS/CP1252.TXT strURL_CP850 = "http://unicode.org/Public/MAPPINGS/VENDORS/MICSFT/PC/CP850.TXT" ; URL for documentation of codepage 850. strURL_CP1252 = "http://unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WINDOWS/CP1252.TXT" ; URL for documentation of codepage 1252. AddExtender ("wwwsk44i.dll") intHTTPResponse = httpRecvTextF (httpGetServer (strURL_CP850, ""), httpGetPath (strURL_CP850, ""), strFileCPFrom, 0) ;intHTTPResponse = 200 ; For testing. Terminate (intHTTPResponse != 200, "Terminated.", "Download error" : @LF : "HTTP Response Code = " : intHTTPResponse : @LF : strURL_CP850) Display (2, "HTTP Download", "Download success" : @LF : strURL_CP850 : @LF : @LF : "File created" : @LF : strFileCPFrom) intHTTPResponse = httpRecvTextF (httpGetServer (strURL_CP1252, ""), httpGetPath (strURL_CP1252, ""), strFileCPTo, 0) ;intHTTPResponse = 200 ; For testing. Terminate (intHTTPResponse != 200, "Terminated.", "Download error" : @LF : "HTTP Response Code = " : intHTTPResponse : @LF : strURL_CP1252) Display (2, "HTTP Download", "Download success" : @LF : strURL_CP1252 : @LF : @LF : "File created" : @LF : strFileCPTo) Drop (intHTTPResponse, strFileCPFrom, strFileCPTo, strURL_CP1252, strURL_CP850) ;------------------------------------------------------------------------------------------------------------------------------------------; ; Step 2. ; We create a conversion table. ; We use the byte value of the character based on codepage A as the index key ; which points to the value of the corresponding character in codepage B. ; ; Just for the demonstration we create both an array table and a binary table. ;------------------------------------------------------------------------------------------------------------------------------------------; strFileCPFrom = "CP850.txt" ; Filename for codepage from http://unicode.org/Public/MAPPINGS/VENDORS/MICSFT/PC/CP850.TXT strFileCPTo = "CP1252.txt" ; Filename for codepage from http://unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WINDOWS/CP1252.TXT strFileConvTableCSV = "CP_850_1252.txt" ; Output conversion table as CSV file including Unicode names. strFileConvTableBin = "CP_850_1252.bin" ; Output conversion table as 256-Byte binary file. arrF = ArrayFileGetCSV (strFileCPFrom, 0, @TAB) ; Input array which contains the "from-table". arrT = ArrayFileGetCSV (strFileCPTo, 0, @TAB) ; Input array which contains the "to-table". arrC = ArrDimension (256, 3) ; Output array which contains the conversion table. ; Column1 = CP_IN, Column2 = CP_OUT, Column3 = Unicode_Name ; Column1 is not really needed. It is just for better reading and understanding. hdlBBC = BinaryAlloc (256) ; Output binary buffer which contains the conversion table. hdlBB = BinaryAlloc (1) ; Buffer for hex to byte conversion. intC = -1 intLastF = ArrInfo (arrF, 1) - 1 For intF = 0 To intLastF If StrIndex (arrF[intF, 0], "#", 1, @FWDSCAN) == 1 Then Continue arrR = ArrayLocate (arrT, arrF[intF, 2], 0, 2) intC = intC + 1 If arrR[0] > -1 BinaryPokeHex (hdlBB, 0, StrSub (arrT[arrR[0], 0], 3, -1)) arrC[intC, 0] = intC arrC[intC, 1] = BinaryPeek (hdlBB, 0) arrC[intC, 2] = arrT[arrR[0], 2] Else arrC[intC, 0] = intC arrC[intC, 1] = intC arrC[intC, 2] = arrF[intF, 2] EndIf BinaryPoke (hdlBBC, intC, arrC[intC, 1]) If intC > 254 Then Break Next hdlBB = BinaryFree (hdlBB) ; Write binary table to disk file for later usage. intBytesWritten = BinaryWrite (hdlBBC, strFileConvTableBin) hdlBBC = BinaryFree (hdlBBC) ; Write array table to disk file for later usage. intBytesWritten = ArrayFilePutCSV (strFileConvTableCSV, arrC, @TAB, @FALSE, 2) Drop (hdlBB, hdlBBC, arrC, arrF, arrR, arrT, intBytesWritten, intC, intF, intLastF) Drop (strFileConvTableBin, strFileConvTableCSV, strFileCPFrom, strFileCPTo) ;------------------------------------------------------------------------------------------------------------------------------------------; ; Step 3. ; How to convert using the binary buffer conversion table? ;------------------------------------------------------------------------------------------------------------------------------------------; strCP850Input = "123-abc-ABC-äöü-ÄÖÜ-Õ-ëóò" hdlBBData = BinaryAlloc (StrLen (strCP850Input)) intBytesPoked = BinaryPokeStr (hdlBBData, 0, strCP850Input) strFileConvTableBin = "CP_850_1252.bin" ; Conversion table as binary file ... hdlBBTable = BinaryAlloc (256) ; ... to use with BinaryXlate function. intBytesRead = BinaryRead (hdlBBTable, strFileConvTableBin) intBBDataEod = BinaryXlate (hdlBBData, hdlBBTable, 0) ; The conversion is done here. strConverted = BinaryPeekStr (hdlBBData, 0, intBBDataEod) ; "123-abc-ABC-õ÷³-ÄÍÜ-Õ-Ù¾ò" hdlBBData = BinaryFree (hdlBBData) hdlBBTable = BinaryFree (hdlBBTable) Message ("Codepage conversion", "In:" : @LF : strCP850Input : @LF : @LF : "Out:" : @LF : strConverted) Drop (hdlBBData, hdlBBTable, intBBDataEod, intBytesPoked, intBytesRead, strConverted, strCP850Input, strFileConvTableBin) ;------------------------------------------------------------------------------------------------------------------------------------------ ; Step 4. ; How to convert using the array conversion table? ;------------------------------------------------------------------------------------------------------------------------------------------; strCP850Input = "123-abc-ABC-äöü-ÄÖÜ-Õ-ëóò" arrIn = ArrayFromStr (strCP850Input) intLast = ArrInfo (arrIn, 1) - 1 strFileConvTableCSV = "CP_850_1252.txt" ; Conversion table as CSV file. arrC = ArrayFileGetCSV (strFileConvTableCSV, 0, @TAB) ; Conversion table to use with array lookup. For intN = 0 To intLast arrIn[intN] = Num2Char (arrC[Char2Num (arrIn[intN]), 1]) ; The conversion is done here. Next strConverted = ArrayToStr (arrIn) ; "123-abc-ABC-õ÷³-ÄÍÜ-Õ-Ù¾ò" Message ("Codepage conversion", "In:" : @LF : strCP850Input : @LF : @LF : "Out:" : @LF : strConverted) Drop (arrIn, arrC, intLast, intN, strConverted, strCP850Input, strFileConvTableCSV) :CANCEL Exit ;========================================================================================================================================== ;========================================================================================================================================== ; The tables ... ; ; CP850 ; CP1252 ; The created conversion table. ; ;========================================================================================================================================== ; # ; # Name: cp850_DOSLatin1 to Unicode table ; # Unicode version: 2.0 ; # Table version: 2.00 ; # Table format: Format A ; # Date: 04/24/96 ; # Contact: Shawn.Steele@microsoft.com ; # ; # General notes: none ; # ; # Format: Three tab-separated columns ; # Column #1 is the cp850_DOSLatin1 code (in hex) ; # Column #2 is the Unicode (in hex as 0xXXXX) ; # Column #3 is the Unicode name (follows a comment sign, '#') ; # ; # The entries are in cp850_DOSLatin1 order ; # ; 0x00 0x0000 #NULL ; 0x01 0x0001 #START OF HEADING ; 0x02 0x0002 #START OF TEXT ; 0x03 0x0003 #END OF TEXT ; 0x04 0x0004 #END OF TRANSMISSION ; 0x05 0x0005 #ENQUIRY ; 0x06 0x0006 #ACKNOWLEDGE ; 0x07 0x0007 #BELL ; 0x08 0x0008 #BACKSPACE ; 0x09 0x0009 #HORIZONTAL TABULATION ; 0x0a 0x000a #LINE FEED ; 0x0b 0x000b #VERTICAL TABULATION ; 0x0c 0x000c #FORM FEED ; 0x0d 0x000d #CARRIAGE RETURN ; 0x0e 0x000e #SHIFT OUT ; 0x0f 0x000f #SHIFT IN ; 0x10 0x0010 #DATA LINK ESCAPE ; 0x11 0x0011 #DEVICE CONTROL ONE ; 0x12 0x0012 #DEVICE CONTROL TWO ; 0x13 0x0013 #DEVICE CONTROL THREE ; 0x14 0x0014 #DEVICE CONTROL FOUR ; 0x15 0x0015 #NEGATIVE ACKNOWLEDGE ; 0x16 0x0016 #SYNCHRONOUS IDLE ; 0x17 0x0017 #END OF TRANSMISSION BLOCK ; 0x18 0x0018 #CANCEL ; 0x19 0x0019 #END OF MEDIUM ; 0x1a 0x001a #SUBSTITUTE ; 0x1b 0x001b #ESCAPE ; 0x1c 0x001c #FILE SEPARATOR ; 0x1d 0x001d #GROUP SEPARATOR ; 0x1e 0x001e #RECORD SEPARATOR ; 0x1f 0x001f #UNIT SEPARATOR ; 0x20 0x0020 #SPACE ; 0x21 0x0021 #EXCLAMATION MARK ; 0x22 0x0022 #QUOTATION MARK ; 0x23 0x0023 #NUMBER SIGN ; 0x24 0x0024 #DOLLAR SIGN ; 0x25 0x0025 #PERCENT SIGN ; 0x26 0x0026 #AMPERSAND ; 0x27 0x0027 #APOSTROPHE ; 0x28 0x0028 #LEFT PARENTHESIS ; 0x29 0x0029 #RIGHT PARENTHESIS ; 0x2a 0x002a #ASTERISK ; 0x2b 0x002b #PLUS SIGN ; 0x2c 0x002c #COMMA ; 0x2d 0x002d #HYPHEN-MINUS ; 0x2e 0x002e #FULL STOP ; 0x2f 0x002f #SOLIDUS ; 0x30 0x0030 #DIGIT ZERO ; 0x31 0x0031 #DIGIT ONE ; 0x32 0x0032 #DIGIT TWO ; 0x33 0x0033 #DIGIT THREE ; 0x34 0x0034 #DIGIT FOUR ; 0x35 0x0035 #DIGIT FIVE ; 0x36 0x0036 #DIGIT SIX ; 0x37 0x0037 #DIGIT SEVEN ; 0x38 0x0038 #DIGIT EIGHT ; 0x39 0x0039 #DIGIT NINE ; 0x3a 0x003a #COLON ; 0x3b 0x003b #SEMICOLON ; 0x3c 0x003c #LESS-THAN SIGN ; 0x3d 0x003d #EQUALS SIGN ; 0x3e 0x003e #GREATER-THAN SIGN ; 0x3f 0x003f #QUESTION MARK ; 0x40 0x0040 #COMMERCIAL AT ; 0x41 0x0041 #LATIN CAPITAL LETTER A ; 0x42 0x0042 #LATIN CAPITAL LETTER B ; 0x43 0x0043 #LATIN CAPITAL LETTER C ; 0x44 0x0044 #LATIN CAPITAL LETTER D ; 0x45 0x0045 #LATIN CAPITAL LETTER E ; 0x46 0x0046 #LATIN CAPITAL LETTER F ; 0x47 0x0047 #LATIN CAPITAL LETTER G ; 0x48 0x0048 #LATIN CAPITAL LETTER H ; 0x49 0x0049 #LATIN CAPITAL LETTER I ; 0x4a 0x004a #LATIN CAPITAL LETTER J ; 0x4b 0x004b #LATIN CAPITAL LETTER K ; 0x4c 0x004c #LATIN CAPITAL LETTER L ; 0x4d 0x004d #LATIN CAPITAL LETTER M ; 0x4e 0x004e #LATIN CAPITAL LETTER N ; 0x4f 0x004f #LATIN CAPITAL LETTER O ; 0x50 0x0050 #LATIN CAPITAL LETTER P ; 0x51 0x0051 #LATIN CAPITAL LETTER Q ; 0x52 0x0052 #LATIN CAPITAL LETTER R ; 0x53 0x0053 #LATIN CAPITAL LETTER S ; 0x54 0x0054 #LATIN CAPITAL LETTER T ; 0x55 0x0055 #LATIN CAPITAL LETTER U ; 0x56 0x0056 #LATIN CAPITAL LETTER V ; 0x57 0x0057 #LATIN CAPITAL LETTER W ; 0x58 0x0058 #LATIN CAPITAL LETTER X ; 0x59 0x0059 #LATIN CAPITAL LETTER Y ; 0x5a 0x005a #LATIN CAPITAL LETTER Z ; 0x5b 0x005b #LEFT SQUARE BRACKET ; 0x5c 0x005c #REVERSE SOLIDUS ; 0x5d 0x005d #RIGHT SQUARE BRACKET ; 0x5e 0x005e #CIRCUMFLEX ACCENT ; 0x5f 0x005f #LOW LINE ; 0x60 0x0060 #GRAVE ACCENT ; 0x61 0x0061 #LATIN SMALL LETTER A ; 0x62 0x0062 #LATIN SMALL LETTER B ; 0x63 0x0063 #LATIN SMALL LETTER C ; 0x64 0x0064 #LATIN SMALL LETTER D ; 0x65 0x0065 #LATIN SMALL LETTER E ; 0x66 0x0066 #LATIN SMALL LETTER F ; 0x67 0x0067 #LATIN SMALL LETTER G ; 0x68 0x0068 #LATIN SMALL LETTER H ; 0x69 0x0069 #LATIN SMALL LETTER I ; 0x6a 0x006a #LATIN SMALL LETTER J ; 0x6b 0x006b #LATIN SMALL LETTER K ; 0x6c 0x006c #LATIN SMALL LETTER L ; 0x6d 0x006d #LATIN SMALL LETTER M ; 0x6e 0x006e #LATIN SMALL LETTER N ; 0x6f 0x006f #LATIN SMALL LETTER O ; 0x70 0x0070 #LATIN SMALL LETTER P ; 0x71 0x0071 #LATIN SMALL LETTER Q ; 0x72 0x0072 #LATIN SMALL LETTER R ; 0x73 0x0073 #LATIN SMALL LETTER S ; 0x74 0x0074 #LATIN SMALL LETTER T ; 0x75 0x0075 #LATIN SMALL LETTER U ; 0x76 0x0076 #LATIN SMALL LETTER V ; 0x77 0x0077 #LATIN SMALL LETTER W ; 0x78 0x0078 #LATIN SMALL LETTER X ; 0x79 0x0079 #LATIN SMALL LETTER Y ; 0x7a 0x007a #LATIN SMALL LETTER Z ; 0x7b 0x007b #LEFT CURLY BRACKET ; 0x7c 0x007c #VERTICAL LINE ; 0x7d 0x007d #RIGHT CURLY BRACKET ; 0x7e 0x007e #TILDE ; 0x7f 0x007f #DELETE ; 0x80 0x00c7 #LATIN CAPITAL LETTER C WITH CEDILLA ; 0x81 0x00fc #LATIN SMALL LETTER U WITH DIAERESIS ; 0x82 0x00e9 #LATIN SMALL LETTER E WITH ACUTE ; 0x83 0x00e2 #LATIN SMALL LETTER A WITH CIRCUMFLEX ; 0x84 0x00e4 #LATIN SMALL LETTER A WITH DIAERESIS ; 0x85 0x00e0 #LATIN SMALL LETTER A WITH GRAVE ; 0x86 0x00e5 #LATIN SMALL LETTER A WITH RING ABOVE ; 0x87 0x00e7 #LATIN SMALL LETTER C WITH CEDILLA ; 0x88 0x00ea #LATIN SMALL LETTER E WITH CIRCUMFLEX ; 0x89 0x00eb #LATIN SMALL LETTER E WITH DIAERESIS ; 0x8a 0x00e8 #LATIN SMALL LETTER E WITH GRAVE ; 0x8b 0x00ef #LATIN SMALL LETTER I WITH DIAERESIS ; 0x8c 0x00ee #LATIN SMALL LETTER I WITH CIRCUMFLEX ; 0x8d 0x00ec #LATIN SMALL LETTER I WITH GRAVE ; 0x8e 0x00c4 #LATIN CAPITAL LETTER A WITH DIAERESIS ; 0x8f 0x00c5 #LATIN CAPITAL LETTER A WITH RING ABOVE ; 0x90 0x00c9 #LATIN CAPITAL LETTER E WITH ACUTE ; 0x91 0x00e6 #LATIN SMALL LIGATURE AE ; 0x92 0x00c6 #LATIN CAPITAL LIGATURE AE ; 0x93 0x00f4 #LATIN SMALL LETTER O WITH CIRCUMFLEX ; 0x94 0x00f6 #LATIN SMALL LETTER O WITH DIAERESIS ; 0x95 0x00f2 #LATIN SMALL LETTER O WITH GRAVE ; 0x96 0x00fb #LATIN SMALL LETTER U WITH CIRCUMFLEX ; 0x97 0x00f9 #LATIN SMALL LETTER U WITH GRAVE ; 0x98 0x00ff #LATIN SMALL LETTER Y WITH DIAERESIS ; 0x99 0x00d6 #LATIN CAPITAL LETTER O WITH DIAERESIS ; 0x9a 0x00dc #LATIN CAPITAL LETTER U WITH DIAERESIS ; 0x9b 0x00f8 #LATIN SMALL LETTER O WITH STROKE ; 0x9c 0x00a3 #POUND SIGN ; 0x9d 0x00d8 #LATIN CAPITAL LETTER O WITH STROKE ; 0x9e 0x00d7 #MULTIPLICATION SIGN ; 0x9f 0x0192 #LATIN SMALL LETTER F WITH HOOK ; 0xa0 0x00e1 #LATIN SMALL LETTER A WITH ACUTE ; 0xa1 0x00ed #LATIN SMALL LETTER I WITH ACUTE ; 0xa2 0x00f3 #LATIN SMALL LETTER O WITH ACUTE ; 0xa3 0x00fa #LATIN SMALL LETTER U WITH ACUTE ; 0xa4 0x00f1 #LATIN SMALL LETTER N WITH TILDE ; 0xa5 0x00d1 #LATIN CAPITAL LETTER N WITH TILDE ; 0xa6 0x00aa #FEMININE ORDINAL INDICATOR ; 0xa7 0x00ba #MASCULINE ORDINAL INDICATOR ; 0xa8 0x00bf #INVERTED QUESTION MARK ; 0xa9 0x00ae #REGISTERED SIGN ; 0xaa 0x00ac #NOT SIGN ; 0xab 0x00bd #VULGAR FRACTION ONE HALF ; 0xac 0x00bc #VULGAR FRACTION ONE QUARTER ; 0xad 0x00a1 #INVERTED EXCLAMATION MARK ; 0xae 0x00ab #LEFT-POINTING DOUBLE ANGLE QUOTATION MARK ; 0xaf 0x00bb #RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK ; 0xb0 0x2591 #LIGHT SHADE ; 0xb1 0x2592 #MEDIUM SHADE ; 0xb2 0x2593 #DARK SHADE ; 0xb3 0x2502 #BOX DRAWINGS LIGHT VERTICAL ; 0xb4 0x2524 #BOX DRAWINGS LIGHT VERTICAL AND LEFT ; 0xb5 0x00c1 #LATIN CAPITAL LETTER A WITH ACUTE ; 0xb6 0x00c2 #LATIN CAPITAL LETTER A WITH CIRCUMFLEX ; 0xb7 0x00c0 #LATIN CAPITAL LETTER A WITH GRAVE ; 0xb8 0x00a9 #COPYRIGHT SIGN ; 0xb9 0x2563 #BOX DRAWINGS DOUBLE VERTICAL AND LEFT ; 0xba 0x2551 #BOX DRAWINGS DOUBLE VERTICAL ; 0xbb 0x2557 #BOX DRAWINGS DOUBLE DOWN AND LEFT ; 0xbc 0x255d #BOX DRAWINGS DOUBLE UP AND LEFT ; 0xbd 0x00a2 #CENT SIGN ; 0xbe 0x00a5 #YEN SIGN ; 0xbf 0x2510 #BOX DRAWINGS LIGHT DOWN AND LEFT ; 0xc0 0x2514 #BOX DRAWINGS LIGHT UP AND RIGHT ; 0xc1 0x2534 #BOX DRAWINGS LIGHT UP AND HORIZONTAL ; 0xc2 0x252c #BOX DRAWINGS LIGHT DOWN AND HORIZONTAL ; 0xc3 0x251c #BOX DRAWINGS LIGHT VERTICAL AND RIGHT ; 0xc4 0x2500 #BOX DRAWINGS LIGHT HORIZONTAL ; 0xc5 0x253c #BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL ; 0xc6 0x00e3 #LATIN SMALL LETTER A WITH TILDE ; 0xc7 0x00c3 #LATIN CAPITAL LETTER A WITH TILDE ; 0xc8 0x255a #BOX DRAWINGS DOUBLE UP AND RIGHT ; 0xc9 0x2554 #BOX DRAWINGS DOUBLE DOWN AND RIGHT ; 0xca 0x2569 #BOX DRAWINGS DOUBLE UP AND HORIZONTAL ; 0xcb 0x2566 #BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL ; 0xcc 0x2560 #BOX DRAWINGS DOUBLE VERTICAL AND RIGHT ; 0xcd 0x2550 #BOX DRAWINGS DOUBLE HORIZONTAL ; 0xce 0x256c #BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL ; 0xcf 0x00a4 #CURRENCY SIGN ; 0xd0 0x00f0 #LATIN SMALL LETTER ETH ; 0xd1 0x00d0 #LATIN CAPITAL LETTER ETH ; 0xd2 0x00ca #LATIN CAPITAL LETTER E WITH CIRCUMFLEX ; 0xd3 0x00cb #LATIN CAPITAL LETTER E WITH DIAERESIS ; 0xd4 0x00c8 #LATIN CAPITAL LETTER E WITH GRAVE ; 0xd5 0x0131 #LATIN SMALL LETTER DOTLESS I ; 0xd6 0x00cd #LATIN CAPITAL LETTER I WITH ACUTE ; 0xd7 0x00ce #LATIN CAPITAL LETTER I WITH CIRCUMFLEX ; 0xd8 0x00cf #LATIN CAPITAL LETTER I WITH DIAERESIS ; 0xd9 0x2518 #BOX DRAWINGS LIGHT UP AND LEFT ; 0xda 0x250c #BOX DRAWINGS LIGHT DOWN AND RIGHT ; 0xdb 0x2588 #FULL BLOCK ; 0xdc 0x2584 #LOWER HALF BLOCK ; 0xdd 0x00a6 #BROKEN BAR ; 0xde 0x00cc #LATIN CAPITAL LETTER I WITH GRAVE ; 0xdf 0x2580 #UPPER HALF BLOCK ; 0xe0 0x00d3 #LATIN CAPITAL LETTER O WITH ACUTE ; 0xe1 0x00df #LATIN SMALL LETTER SHARP S ; 0xe2 0x00d4 #LATIN CAPITAL LETTER O WITH CIRCUMFLEX ; 0xe3 0x00d2 #LATIN CAPITAL LETTER O WITH GRAVE ; 0xe4 0x00f5 #LATIN SMALL LETTER O WITH TILDE ; 0xe5 0x00d5 #LATIN CAPITAL LETTER O WITH TILDE ; 0xe6 0x00b5 #MICRO SIGN ; 0xe7 0x00fe #LATIN SMALL LETTER THORN ; 0xe8 0x00de #LATIN CAPITAL LETTER THORN ; 0xe9 0x00da #LATIN CAPITAL LETTER U WITH ACUTE ; 0xea 0x00db #LATIN CAPITAL LETTER U WITH CIRCUMFLEX ; 0xeb 0x00d9 #LATIN CAPITAL LETTER U WITH GRAVE ; 0xec 0x00fd #LATIN SMALL LETTER Y WITH ACUTE ; 0xed 0x00dd #LATIN CAPITAL LETTER Y WITH ACUTE ; 0xee 0x00af #MACRON ; 0xef 0x00b4 #ACUTE ACCENT ; 0xf0 0x00ad #SOFT HYPHEN ; 0xf1 0x00b1 #PLUS-MINUS SIGN ; 0xf2 0x2017 #DOUBLE LOW LINE ; 0xf3 0x00be #VULGAR FRACTION THREE QUARTERS ; 0xf4 0x00b6 #PILCROW SIGN ; 0xf5 0x00a7 #SECTION SIGN ; 0xf6 0x00f7 #DIVISION SIGN ; 0xf7 0x00b8 #CEDILLA ; 0xf8 0x00b0 #DEGREE SIGN ; 0xf9 0x00a8 #DIAERESIS ; 0xfa 0x00b7 #MIDDLE DOT ; 0xfb 0x00b9 #SUPERSCRIPT ONE ; 0xfc 0x00b3 #SUPERSCRIPT THREE ; 0xfd 0x00b2 #SUPERSCRIPT TWO ; 0xfe 0x25a0 #BLACK SQUARE ; 0xff 0x00a0 #NO-BREAK SPACE ;========================================================================================================================================== ; # ; # Name: cp1252 to Unicode table ; # Unicode version: 2.0 ; # Table version: 2.01 ; # Table format: Format A ; # Date: 04/15/98 ; # ; # Contact: Shawn.Steele@microsoft.com ; # ; # General notes: none ; # ; # Format: Three tab-separated columns ; # Column #1 is the cp1252 code (in hex) ; # Column #2 is the Unicode (in hex as 0xXXXX) ; # Column #3 is the Unicode name (follows a comment sign, '#') ; # ; # The entries are in cp1252 order ; # ; 0x00 0x0000 #NULL ; 0x01 0x0001 #START OF HEADING ; 0x02 0x0002 #START OF TEXT ; 0x03 0x0003 #END OF TEXT ; 0x04 0x0004 #END OF TRANSMISSION ; 0x05 0x0005 #ENQUIRY ; 0x06 0x0006 #ACKNOWLEDGE ; 0x07 0x0007 #BELL ; 0x08 0x0008 #BACKSPACE ; 0x09 0x0009 #HORIZONTAL TABULATION ; 0x0A 0x000A #LINE FEED ; 0x0B 0x000B #VERTICAL TABULATION ; 0x0C 0x000C #FORM FEED ; 0x0D 0x000D #CARRIAGE RETURN ; 0x0E 0x000E #SHIFT OUT ; 0x0F 0x000F #SHIFT IN ; 0x10 0x0010 #DATA LINK ESCAPE ; 0x11 0x0011 #DEVICE CONTROL ONE ; 0x12 0x0012 #DEVICE CONTROL TWO ; 0x13 0x0013 #DEVICE CONTROL THREE ; 0x14 0x0014 #DEVICE CONTROL FOUR ; 0x15 0x0015 #NEGATIVE ACKNOWLEDGE ; 0x16 0x0016 #SYNCHRONOUS IDLE ; 0x17 0x0017 #END OF TRANSMISSION BLOCK ; 0x18 0x0018 #CANCEL ; 0x19 0x0019 #END OF MEDIUM ; 0x1A 0x001A #SUBSTITUTE ; 0x1B 0x001B #ESCAPE ; 0x1C 0x001C #FILE SEPARATOR ; 0x1D 0x001D #GROUP SEPARATOR ; 0x1E 0x001E #RECORD SEPARATOR ; 0x1F 0x001F #UNIT SEPARATOR ; 0x20 0x0020 #SPACE ; 0x21 0x0021 #EXCLAMATION MARK ; 0x22 0x0022 #QUOTATION MARK ; 0x23 0x0023 #NUMBER SIGN ; 0x24 0x0024 #DOLLAR SIGN ; 0x25 0x0025 #PERCENT SIGN ; 0x26 0x0026 #AMPERSAND ; 0x27 0x0027 #APOSTROPHE ; 0x28 0x0028 #LEFT PARENTHESIS ; 0x29 0x0029 #RIGHT PARENTHESIS ; 0x2A 0x002A #ASTERISK ; 0x2B 0x002B #PLUS SIGN ; 0x2C 0x002C #COMMA ; 0x2D 0x002D #HYPHEN-MINUS ; 0x2E 0x002E #FULL STOP ; 0x2F 0x002F #SOLIDUS ; 0x30 0x0030 #DIGIT ZERO ; 0x31 0x0031 #DIGIT ONE ; 0x32 0x0032 #DIGIT TWO ; 0x33 0x0033 #DIGIT THREE ; 0x34 0x0034 #DIGIT FOUR ; 0x35 0x0035 #DIGIT FIVE ; 0x36 0x0036 #DIGIT SIX ; 0x37 0x0037 #DIGIT SEVEN ; 0x38 0x0038 #DIGIT EIGHT ; 0x39 0x0039 #DIGIT NINE ; 0x3A 0x003A #COLON ; 0x3B 0x003B #SEMICOLON ; 0x3C 0x003C #LESS-THAN SIGN ; 0x3D 0x003D #EQUALS SIGN ; 0x3E 0x003E #GREATER-THAN SIGN ; 0x3F 0x003F #QUESTION MARK ; 0x40 0x0040 #COMMERCIAL AT ; 0x41 0x0041 #LATIN CAPITAL LETTER A ; 0x42 0x0042 #LATIN CAPITAL LETTER B ; 0x43 0x0043 #LATIN CAPITAL LETTER C ; 0x44 0x0044 #LATIN CAPITAL LETTER D ; 0x45 0x0045 #LATIN CAPITAL LETTER E ; 0x46 0x0046 #LATIN CAPITAL LETTER F ; 0x47 0x0047 #LATIN CAPITAL LETTER G ; 0x48 0x0048 #LATIN CAPITAL LETTER H ; 0x49 0x0049 #LATIN CAPITAL LETTER I ; 0x4A 0x004A #LATIN CAPITAL LETTER J ; 0x4B 0x004B #LATIN CAPITAL LETTER K ; 0x4C 0x004C #LATIN CAPITAL LETTER L ; 0x4D 0x004D #LATIN CAPITAL LETTER M ; 0x4E 0x004E #LATIN CAPITAL LETTER N ; 0x4F 0x004F #LATIN CAPITAL LETTER O ; 0x50 0x0050 #LATIN CAPITAL LETTER P ; 0x51 0x0051 #LATIN CAPITAL LETTER Q ; 0x52 0x0052 #LATIN CAPITAL LETTER R ; 0x53 0x0053 #LATIN CAPITAL LETTER S ; 0x54 0x0054 #LATIN CAPITAL LETTER T ; 0x55 0x0055 #LATIN CAPITAL LETTER U ; 0x56 0x0056 #LATIN CAPITAL LETTER V ; 0x57 0x0057 #LATIN CAPITAL LETTER W ; 0x58 0x0058 #LATIN CAPITAL LETTER X ; 0x59 0x0059 #LATIN CAPITAL LETTER Y ; 0x5A 0x005A #LATIN CAPITAL LETTER Z ; 0x5B 0x005B #LEFT SQUARE BRACKET ; 0x5C 0x005C #REVERSE SOLIDUS ; 0x5D 0x005D #RIGHT SQUARE BRACKET ; 0x5E 0x005E #CIRCUMFLEX ACCENT ; 0x5F 0x005F #LOW LINE ; 0x60 0x0060 #GRAVE ACCENT ; 0x61 0x0061 #LATIN SMALL LETTER A ; 0x62 0x0062 #LATIN SMALL LETTER B ; 0x63 0x0063 #LATIN SMALL LETTER C ; 0x64 0x0064 #LATIN SMALL LETTER D ; 0x65 0x0065 #LATIN SMALL LETTER E ; 0x66 0x0066 #LATIN SMALL LETTER F ; 0x67 0x0067 #LATIN SMALL LETTER G ; 0x68 0x0068 #LATIN SMALL LETTER H ; 0x69 0x0069 #LATIN SMALL LETTER I ; 0x6A 0x006A #LATIN SMALL LETTER J ; 0x6B 0x006B #LATIN SMALL LETTER K ; 0x6C 0x006C #LATIN SMALL LETTER L ; 0x6D 0x006D #LATIN SMALL LETTER M ; 0x6E 0x006E #LATIN SMALL LETTER N ; 0x6F 0x006F #LATIN SMALL LETTER O ; 0x70 0x0070 #LATIN SMALL LETTER P ; 0x71 0x0071 #LATIN SMALL LETTER Q ; 0x72 0x0072 #LATIN SMALL LETTER R ; 0x73 0x0073 #LATIN SMALL LETTER S ; 0x74 0x0074 #LATIN SMALL LETTER T ; 0x75 0x0075 #LATIN SMALL LETTER U ; 0x76 0x0076 #LATIN SMALL LETTER V ; 0x77 0x0077 #LATIN SMALL LETTER W ; 0x78 0x0078 #LATIN SMALL LETTER X ; 0x79 0x0079 #LATIN SMALL LETTER Y ; 0x7A 0x007A #LATIN SMALL LETTER Z ; 0x7B 0x007B #LEFT CURLY BRACKET ; 0x7C 0x007C #VERTICAL LINE ; 0x7D 0x007D #RIGHT CURLY BRACKET ; 0x7E 0x007E #TILDE ; 0x7F 0x007F #DELETE ; 0x80 0x20AC #EURO SIGN ; 0x81 #UNDEFINED ; 0x82 0x201A #SINGLE LOW-9 QUOTATION MARK ; 0x83 0x0192 #LATIN SMALL LETTER F WITH HOOK ; 0x84 0x201E #DOUBLE LOW-9 QUOTATION MARK ; 0x85 0x2026 #HORIZONTAL ELLIPSIS ; 0x86 0x2020 #DAGGER ; 0x87 0x2021 #DOUBLE DAGGER ; 0x88 0x02C6 #MODIFIER LETTER CIRCUMFLEX ACCENT ; 0x89 0x2030 #PER MILLE SIGN ; 0x8A 0x0160 #LATIN CAPITAL LETTER S WITH CARON ; 0x8B 0x2039 #SINGLE LEFT-POINTING ANGLE QUOTATION MARK ; 0x8C 0x0152 #LATIN CAPITAL LIGATURE OE ; 0x8D #UNDEFINED ; 0x8E 0x017D #LATIN CAPITAL LETTER Z WITH CARON ; 0x8F #UNDEFINED ; 0x90 #UNDEFINED ; 0x91 0x2018 #LEFT SINGLE QUOTATION MARK ; 0x92 0x2019 #RIGHT SINGLE QUOTATION MARK ; 0x93 0x201C #LEFT DOUBLE QUOTATION MARK ; 0x94 0x201D #RIGHT DOUBLE QUOTATION MARK ; 0x95 0x2022 #BULLET ; 0x96 0x2013 #EN DASH ; 0x97 0x2014 #EM DASH ; 0x98 0x02DC #SMALL TILDE ; 0x99 0x2122 #TRADE MARK SIGN ; 0x9A 0x0161 #LATIN SMALL LETTER S WITH CARON ; 0x9B 0x203A #SINGLE RIGHT-POINTING ANGLE QUOTATION MARK ; 0x9C 0x0153 #LATIN SMALL LIGATURE OE ; 0x9D #UNDEFINED ; 0x9E 0x017E #LATIN SMALL LETTER Z WITH CARON ; 0x9F 0x0178 #LATIN CAPITAL LETTER Y WITH DIAERESIS ; 0xA0 0x00A0 #NO-BREAK SPACE ; 0xA1 0x00A1 #INVERTED EXCLAMATION MARK ; 0xA2 0x00A2 #CENT SIGN ; 0xA3 0x00A3 #POUND SIGN ; 0xA4 0x00A4 #CURRENCY SIGN ; 0xA5 0x00A5 #YEN SIGN ; 0xA6 0x00A6 #BROKEN BAR ; 0xA7 0x00A7 #SECTION SIGN ; 0xA8 0x00A8 #DIAERESIS ; 0xA9 0x00A9 #COPYRIGHT SIGN ; 0xAA 0x00AA #FEMININE ORDINAL INDICATOR ; 0xAB 0x00AB #LEFT-POINTING DOUBLE ANGLE QUOTATION MARK ; 0xAC 0x00AC #NOT SIGN ; 0xAD 0x00AD #SOFT HYPHEN ; 0xAE 0x00AE #REGISTERED SIGN ; 0xAF 0x00AF #MACRON ; 0xB0 0x00B0 #DEGREE SIGN ; 0xB1 0x00B1 #PLUS-MINUS SIGN ; 0xB2 0x00B2 #SUPERSCRIPT TWO ; 0xB3 0x00B3 #SUPERSCRIPT THREE ; 0xB4 0x00B4 #ACUTE ACCENT ; 0xB5 0x00B5 #MICRO SIGN ; 0xB6 0x00B6 #PILCROW SIGN ; 0xB7 0x00B7 #MIDDLE DOT ; 0xB8 0x00B8 #CEDILLA ; 0xB9 0x00B9 #SUPERSCRIPT ONE ; 0xBA 0x00BA #MASCULINE ORDINAL INDICATOR ; 0xBB 0x00BB #RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK ; 0xBC 0x00BC #VULGAR FRACTION ONE QUARTER ; 0xBD 0x00BD #VULGAR FRACTION ONE HALF ; 0xBE 0x00BE #VULGAR FRACTION THREE QUARTERS ; 0xBF 0x00BF #INVERTED QUESTION MARK ; 0xC0 0x00C0 #LATIN CAPITAL LETTER A WITH GRAVE ; 0xC1 0x00C1 #LATIN CAPITAL LETTER A WITH ACUTE ; 0xC2 0x00C2 #LATIN CAPITAL LETTER A WITH CIRCUMFLEX ; 0xC3 0x00C3 #LATIN CAPITAL LETTER A WITH TILDE ; 0xC4 0x00C4 #LATIN CAPITAL LETTER A WITH DIAERESIS ; 0xC5 0x00C5 #LATIN CAPITAL LETTER A WITH RING ABOVE ; 0xC6 0x00C6 #LATIN CAPITAL LETTER AE ; 0xC7 0x00C7 #LATIN CAPITAL LETTER C WITH CEDILLA ; 0xC8 0x00C8 #LATIN CAPITAL LETTER E WITH GRAVE ; 0xC9 0x00C9 #LATIN CAPITAL LETTER E WITH ACUTE ; 0xCA 0x00CA #LATIN CAPITAL LETTER E WITH CIRCUMFLEX ; 0xCB 0x00CB #LATIN CAPITAL LETTER E WITH DIAERESIS ; 0xCC 0x00CC #LATIN CAPITAL LETTER I WITH GRAVE ; 0xCD 0x00CD #LATIN CAPITAL LETTER I WITH ACUTE ; 0xCE 0x00CE #LATIN CAPITAL LETTER I WITH CIRCUMFLEX ; 0xCF 0x00CF #LATIN CAPITAL LETTER I WITH DIAERESIS ; 0xD0 0x00D0 #LATIN CAPITAL LETTER ETH ; 0xD1 0x00D1 #LATIN CAPITAL LETTER N WITH TILDE ; 0xD2 0x00D2 #LATIN CAPITAL LETTER O WITH GRAVE ; 0xD3 0x00D3 #LATIN CAPITAL LETTER O WITH ACUTE ; 0xD4 0x00D4 #LATIN CAPITAL LETTER O WITH CIRCUMFLEX ; 0xD5 0x00D5 #LATIN CAPITAL LETTER O WITH TILDE ; 0xD6 0x00D6 #LATIN CAPITAL LETTER O WITH DIAERESIS ; 0xD7 0x00D7 #MULTIPLICATION SIGN ; 0xD8 0x00D8 #LATIN CAPITAL LETTER O WITH STROKE ; 0xD9 0x00D9 #LATIN CAPITAL LETTER U WITH GRAVE ; 0xDA 0x00DA #LATIN CAPITAL LETTER U WITH ACUTE ; 0xDB 0x00DB #LATIN CAPITAL LETTER U WITH CIRCUMFLEX ; 0xDC 0x00DC #LATIN CAPITAL LETTER U WITH DIAERESIS ; 0xDD 0x00DD #LATIN CAPITAL LETTER Y WITH ACUTE ; 0xDE 0x00DE #LATIN CAPITAL LETTER THORN ; 0xDF 0x00DF #LATIN SMALL LETTER SHARP S ; 0xE0 0x00E0 #LATIN SMALL LETTER A WITH GRAVE ; 0xE1 0x00E1 #LATIN SMALL LETTER A WITH ACUTE ; 0xE2 0x00E2 #LATIN SMALL LETTER A WITH CIRCUMFLEX ; 0xE3 0x00E3 #LATIN SMALL LETTER A WITH TILDE ; 0xE4 0x00E4 #LATIN SMALL LETTER A WITH DIAERESIS ; 0xE5 0x00E5 #LATIN SMALL LETTER A WITH RING ABOVE ; 0xE6 0x00E6 #LATIN SMALL LETTER AE ; 0xE7 0x00E7 #LATIN SMALL LETTER C WITH CEDILLA ; 0xE8 0x00E8 #LATIN SMALL LETTER E WITH GRAVE ; 0xE9 0x00E9 #LATIN SMALL LETTER E WITH ACUTE ; 0xEA 0x00EA #LATIN SMALL LETTER E WITH CIRCUMFLEX ; 0xEB 0x00EB #LATIN SMALL LETTER E WITH DIAERESIS ; 0xEC 0x00EC #LATIN SMALL LETTER I WITH GRAVE ; 0xED 0x00ED #LATIN SMALL LETTER I WITH ACUTE ; 0xEE 0x00EE #LATIN SMALL LETTER I WITH CIRCUMFLEX ; 0xEF 0x00EF #LATIN SMALL LETTER I WITH DIAERESIS ; 0xF0 0x00F0 #LATIN SMALL LETTER ETH ; 0xF1 0x00F1 #LATIN SMALL LETTER N WITH TILDE ; 0xF2 0x00F2 #LATIN SMALL LETTER O WITH GRAVE ; 0xF3 0x00F3 #LATIN SMALL LETTER O WITH ACUTE ; 0xF4 0x00F4 #LATIN SMALL LETTER O WITH CIRCUMFLEX ; 0xF5 0x00F5 #LATIN SMALL LETTER O WITH TILDE ; 0xF6 0x00F6 #LATIN SMALL LETTER O WITH DIAERESIS ; 0xF7 0x00F7 #DIVISION SIGN ; 0xF8 0x00F8 #LATIN SMALL LETTER O WITH STROKE ; 0xF9 0x00F9 #LATIN SMALL LETTER U WITH GRAVE ; 0xFA 0x00FA #LATIN SMALL LETTER U WITH ACUTE ; 0xFB 0x00FB #LATIN SMALL LETTER U WITH CIRCUMFLEX ; 0xFC 0x00FC #LATIN SMALL LETTER U WITH DIAERESIS ; 0xFD 0x00FD #LATIN SMALL LETTER Y WITH ACUTE ; 0xFE 0x00FE #LATIN SMALL LETTER THORN ; 0xFF 0x00FF #LATIN SMALL LETTER Y WITH DIAERESIS ;========================================================================================================================================== ; # ; # Name: cp850 to cp1252 conversion table ; # ; # Table version: 1.00 ; # Date: 2010-02-18 ; # ; # Contact: dd@hpdd.de ; # ; # Format: Three tab-separated columns ; # Column #1 is the cp850 code (in decimal) ; # Column #2 is the cp1252 code (in decimal) ; # Column #3 is the Unicode name (follows a comment sign, '#') ; # ; # The entries are in cp850 order ; # ; 0 0 #NULL ; 1 1 #START OF HEADING ; 2 2 #START OF TEXT ; 3 3 #END OF TEXT ; 4 4 #END OF TRANSMISSION ; 5 5 #ENQUIRY ; 6 6 #ACKNOWLEDGE ; 7 7 #BELL ; 8 8 #BACKSPACE ; 9 9 #HORIZONTAL TABULATION ; 10 10 #LINE FEED ; 11 11 #VERTICAL TABULATION ; 12 12 #FORM FEED ; 13 13 #CARRIAGE RETURN ; 14 14 #SHIFT OUT ; 15 15 #SHIFT IN ; 16 16 #DATA LINK ESCAPE ; 17 17 #DEVICE CONTROL ONE ; 18 18 #DEVICE CONTROL TWO ; 19 19 #DEVICE CONTROL THREE ; 20 20 #DEVICE CONTROL FOUR ; 21 21 #NEGATIVE ACKNOWLEDGE ; 22 22 #SYNCHRONOUS IDLE ; 23 23 #END OF TRANSMISSION BLOCK ; 24 24 #CANCEL ; 25 25 #END OF MEDIUM ; 26 26 #SUBSTITUTE ; 27 27 #ESCAPE ; 28 28 #FILE SEPARATOR ; 29 29 #GROUP SEPARATOR ; 30 30 #RECORD SEPARATOR ; 31 31 #UNIT SEPARATOR ; 32 32 #SPACE ; 33 33 #EXCLAMATION MARK ; 34 34 #QUOTATION MARK ; 35 35 #NUMBER SIGN ; 36 36 #DOLLAR SIGN ; 37 37 #PERCENT SIGN ; 38 38 #AMPERSAND ; 39 39 #APOSTROPHE ; 40 40 #LEFT PARENTHESIS ; 41 41 #RIGHT PARENTHESIS ; 42 42 #ASTERISK ; 43 43 #PLUS SIGN ; 44 44 #COMMA ; 45 45 #HYPHEN-MINUS ; 46 46 #FULL STOP ; 47 47 #SOLIDUS ; 48 48 #DIGIT ZERO ; 49 49 #DIGIT ONE ; 50 50 #DIGIT TWO ; 51 51 #DIGIT THREE ; 52 52 #DIGIT FOUR ; 53 53 #DIGIT FIVE ; 54 54 #DIGIT SIX ; 55 55 #DIGIT SEVEN ; 56 56 #DIGIT EIGHT ; 57 57 #DIGIT NINE ; 58 58 #COLON ; 59 59 #SEMICOLON ; 60 60 #LESS-THAN SIGN ; 61 61 #EQUALS SIGN ; 62 62 #GREATER-THAN SIGN ; 63 63 #QUESTION MARK ; 64 64 #COMMERCIAL AT ; 65 65 #LATIN CAPITAL LETTER A ; 66 66 #LATIN CAPITAL LETTER B ; 67 67 #LATIN CAPITAL LETTER C ; 68 68 #LATIN CAPITAL LETTER D ; 69 69 #LATIN CAPITAL LETTER E ; 70 70 #LATIN CAPITAL LETTER F ; 71 71 #LATIN CAPITAL LETTER G ; 72 72 #LATIN CAPITAL LETTER H ; 73 73 #LATIN CAPITAL LETTER I ; 74 74 #LATIN CAPITAL LETTER J ; 75 75 #LATIN CAPITAL LETTER K ; 76 76 #LATIN CAPITAL LETTER L ; 77 77 #LATIN CAPITAL LETTER M ; 78 78 #LATIN CAPITAL LETTER N ; 79 79 #LATIN CAPITAL LETTER O ; 80 80 #LATIN CAPITAL LETTER P ; 81 81 #LATIN CAPITAL LETTER Q ; 82 82 #LATIN CAPITAL LETTER R ; 83 83 #LATIN CAPITAL LETTER S ; 84 84 #LATIN CAPITAL LETTER T ; 85 85 #LATIN CAPITAL LETTER U ; 86 86 #LATIN CAPITAL LETTER V ; 87 87 #LATIN CAPITAL LETTER W ; 88 88 #LATIN CAPITAL LETTER X ; 89 89 #LATIN CAPITAL LETTER Y ; 90 90 #LATIN CAPITAL LETTER Z ; 91 91 #LEFT SQUARE BRACKET ; 92 92 #REVERSE SOLIDUS ; 93 93 #RIGHT SQUARE BRACKET ; 94 94 #CIRCUMFLEX ACCENT ; 95 95 #LOW LINE ; 96 96 #GRAVE ACCENT ; 97 97 #LATIN SMALL LETTER A ; 98 98 #LATIN SMALL LETTER B ; 99 99 #LATIN SMALL LETTER C ; 100 100 #LATIN SMALL LETTER D ; 101 101 #LATIN SMALL LETTER E ; 102 102 #LATIN SMALL LETTER F ; 103 103 #LATIN SMALL LETTER G ; 104 104 #LATIN SMALL LETTER H ; 105 105 #LATIN SMALL LETTER I ; 106 106 #LATIN SMALL LETTER J ; 107 107 #LATIN SMALL LETTER K ; 108 108 #LATIN SMALL LETTER L ; 109 109 #LATIN SMALL LETTER M ; 110 110 #LATIN SMALL LETTER N ; 111 111 #LATIN SMALL LETTER O ; 112 112 #LATIN SMALL LETTER P ; 113 113 #LATIN SMALL LETTER Q ; 114 114 #LATIN SMALL LETTER R ; 115 115 #LATIN SMALL LETTER S ; 116 116 #LATIN SMALL LETTER T ; 117 117 #LATIN SMALL LETTER U ; 118 118 #LATIN SMALL LETTER V ; 119 119 #LATIN SMALL LETTER W ; 120 120 #LATIN SMALL LETTER X ; 121 121 #LATIN SMALL LETTER Y ; 122 122 #LATIN SMALL LETTER Z ; 123 123 #LEFT CURLY BRACKET ; 124 124 #VERTICAL LINE ; 125 125 #RIGHT CURLY BRACKET ; 126 126 #TILDE ; 127 127 #DELETE ; 128 199 #LATIN CAPITAL LETTER C WITH CEDILLA ; 129 252 #LATIN SMALL LETTER U WITH DIAERESIS ; 130 233 #LATIN SMALL LETTER E WITH ACUTE ; 131 226 #LATIN SMALL LETTER A WITH CIRCUMFLEX ; 132 228 #LATIN SMALL LETTER A WITH DIAERESIS ; 133 224 #LATIN SMALL LETTER A WITH GRAVE ; 134 229 #LATIN SMALL LETTER A WITH RING ABOVE ; 135 231 #LATIN SMALL LETTER C WITH CEDILLA ; 136 234 #LATIN SMALL LETTER E WITH CIRCUMFLEX ; 137 235 #LATIN SMALL LETTER E WITH DIAERESIS ; 138 232 #LATIN SMALL LETTER E WITH GRAVE ; 139 239 #LATIN SMALL LETTER I WITH DIAERESIS ; 140 238 #LATIN SMALL LETTER I WITH CIRCUMFLEX ; 141 236 #LATIN SMALL LETTER I WITH GRAVE ; 142 196 #LATIN CAPITAL LETTER A WITH DIAERESIS ; 143 197 #LATIN CAPITAL LETTER A WITH RING ABOVE ; 144 201 #LATIN CAPITAL LETTER E WITH ACUTE ; 145 145 #LATIN SMALL LIGATURE AE ; 146 146 #LATIN CAPITAL LIGATURE AE ; 147 244 #LATIN SMALL LETTER O WITH CIRCUMFLEX ; 148 246 #LATIN SMALL LETTER O WITH DIAERESIS ; 149 242 #LATIN SMALL LETTER O WITH GRAVE ; 150 251 #LATIN SMALL LETTER U WITH CIRCUMFLEX ; 151 249 #LATIN SMALL LETTER U WITH GRAVE ; 152 255 #LATIN SMALL LETTER Y WITH DIAERESIS ; 153 214 #LATIN CAPITAL LETTER O WITH DIAERESIS ; 154 220 #LATIN CAPITAL LETTER U WITH DIAERESIS ; 155 248 #LATIN SMALL LETTER O WITH STROKE ; 156 163 #POUND SIGN ; 157 216 #LATIN CAPITAL LETTER O WITH STROKE ; 158 215 #MULTIPLICATION SIGN ; 159 131 #LATIN SMALL LETTER F WITH HOOK ; 160 225 #LATIN SMALL LETTER A WITH ACUTE ; 161 237 #LATIN SMALL LETTER I WITH ACUTE ; 162 243 #LATIN SMALL LETTER O WITH ACUTE ; 163 250 #LATIN SMALL LETTER U WITH ACUTE ; 164 241 #LATIN SMALL LETTER N WITH TILDE ; 165 209 #LATIN CAPITAL LETTER N WITH TILDE ; 166 170 #FEMININE ORDINAL INDICATOR ; 167 186 #MASCULINE ORDINAL INDICATOR ; 168 191 #INVERTED QUESTION MARK ; 169 174 #REGISTERED SIGN ; 170 172 #NOT SIGN ; 171 189 #VULGAR FRACTION ONE HALF ; 172 188 #VULGAR FRACTION ONE QUARTER ; 173 161 #INVERTED EXCLAMATION MARK ; 174 171 #LEFT-POINTING DOUBLE ANGLE QUOTATION MARK ; 175 187 #RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK ; 176 176 #LIGHT SHADE ; 177 177 #MEDIUM SHADE ; 178 178 #DARK SHADE ; 179 179 #BOX DRAWINGS LIGHT VERTICAL ; 180 180 #BOX DRAWINGS LIGHT VERTICAL AND LEFT ; 181 193 #LATIN CAPITAL LETTER A WITH ACUTE ; 182 194 #LATIN CAPITAL LETTER A WITH CIRCUMFLEX ; 183 192 #LATIN CAPITAL LETTER A WITH GRAVE ; 184 169 #COPYRIGHT SIGN ; 185 185 #BOX DRAWINGS DOUBLE VERTICAL AND LEFT ; 186 186 #BOX DRAWINGS DOUBLE VERTICAL ; 187 187 #BOX DRAWINGS DOUBLE DOWN AND LEFT ; 188 188 #BOX DRAWINGS DOUBLE UP AND LEFT ; 189 162 #CENT SIGN ; 190 165 #YEN SIGN ; 191 191 #BOX DRAWINGS LIGHT DOWN AND LEFT ; 192 192 #BOX DRAWINGS LIGHT UP AND RIGHT ; 193 193 #BOX DRAWINGS LIGHT UP AND HORIZONTAL ; 194 194 #BOX DRAWINGS LIGHT DOWN AND HORIZONTAL ; 195 195 #BOX DRAWINGS LIGHT VERTICAL AND RIGHT ; 196 196 #BOX DRAWINGS LIGHT HORIZONTAL ; 197 197 #BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL ; 198 227 #LATIN SMALL LETTER A WITH TILDE ; 199 195 #LATIN CAPITAL LETTER A WITH TILDE ; 200 200 #BOX DRAWINGS DOUBLE UP AND RIGHT ; 201 201 #BOX DRAWINGS DOUBLE DOWN AND RIGHT ; 202 202 #BOX DRAWINGS DOUBLE UP AND HORIZONTAL ; 203 203 #BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL ; 204 204 #BOX DRAWINGS DOUBLE VERTICAL AND RIGHT ; 205 205 #BOX DRAWINGS DOUBLE HORIZONTAL ; 206 206 #BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL ; 207 164 #CURRENCY SIGN ; 208 240 #LATIN SMALL LETTER ETH ; 209 208 #LATIN CAPITAL LETTER ETH ; 210 202 #LATIN CAPITAL LETTER E WITH CIRCUMFLEX ; 211 203 #LATIN CAPITAL LETTER E WITH DIAERESIS ; 212 200 #LATIN CAPITAL LETTER E WITH GRAVE ; 213 213 #LATIN SMALL LETTER DOTLESS I ; 214 205 #LATIN CAPITAL LETTER I WITH ACUTE ; 215 206 #LATIN CAPITAL LETTER I WITH CIRCUMFLEX ; 216 207 #LATIN CAPITAL LETTER I WITH DIAERESIS ; 217 217 #BOX DRAWINGS LIGHT UP AND LEFT ; 218 218 #BOX DRAWINGS LIGHT DOWN AND RIGHT ; 219 219 #FULL BLOCK ; 220 220 #LOWER HALF BLOCK ; 221 166 #BROKEN BAR ; 222 204 #LATIN CAPITAL LETTER I WITH GRAVE ; 223 223 #UPPER HALF BLOCK ; 224 211 #LATIN CAPITAL LETTER O WITH ACUTE ; 225 223 #LATIN SMALL LETTER SHARP S ; 226 212 #LATIN CAPITAL LETTER O WITH CIRCUMFLEX ; 227 210 #LATIN CAPITAL LETTER O WITH GRAVE ; 228 245 #LATIN SMALL LETTER O WITH TILDE ; 229 213 #LATIN CAPITAL LETTER O WITH TILDE ; 230 181 #MICRO SIGN ; 231 254 #LATIN SMALL LETTER THORN ; 232 222 #LATIN CAPITAL LETTER THORN ; 233 218 #LATIN CAPITAL LETTER U WITH ACUTE ; 234 219 #LATIN CAPITAL LETTER U WITH CIRCUMFLEX ; 235 217 #LATIN CAPITAL LETTER U WITH GRAVE ; 236 253 #LATIN SMALL LETTER Y WITH ACUTE ; 237 221 #LATIN CAPITAL LETTER Y WITH ACUTE ; 238 175 #MACRON ; 239 180 #ACUTE ACCENT ; 240 173 #SOFT HYPHEN ; 241 177 #PLUS-MINUS SIGN ; 242 242 #DOUBLE LOW LINE ; 243 190 #VULGAR FRACTION THREE QUARTERS ; 244 182 #PILCROW SIGN ; 245 167 #SECTION SIGN ; 246 247 #DIVISION SIGN ; 247 184 #CEDILLA ; 248 176 #DEGREE SIGN ; 249 168 #DIAERESIS ; 250 183 #MIDDLE DOT ; 251 185 #SUPERSCRIPT ONE ; 252 179 #SUPERSCRIPT THREE ; 253 178 #SUPERSCRIPT TWO ; 254 254 #BLACK SQUARE ; 255 160 #NO-BREAK SPACE ;==========================================================================================================================================