Make WordPress Core

Changes between Initial Version and Version 10 of Ticket #34677


Ignore:
Timestamp:
06/09/2016 05:46:16 PM (7 years ago)
Author:
DrewAPicture
Comment:

Legend:

Unmodified
Added
Removed
Modified
  • Ticket #34677

    • Property Status changed from new to reviewing
    • Property Focuses docs added
    • Property Component changed from General to Formatting
    • Property Summary changed from enhancement to /src/wp-includes/formatting.php to Inline comments for remove_accents()
    • Property Owner set to DrewAPicture
    • Property Milestone changed from Awaiting Review to 4.6
    • Property Keywords has-patch added
  • Ticket #34677 – Description

    initial v10  
    44in the remove_accents function, you can use this for the chars array:
    55(it's the same contents exactly just in an ever so slightly different order, and with super awesome comments mostly added.  (Feel free to email me or call me at [removed] when you go to add this, I may have a more commented version by then.)
    6 
    7 {{{#!php
    8 <?php
    9                                 // GBP (Pound) Sign
    10                                 chr(194).chr(163) => '',
    11                                 // Decompositions for Latin-1 Supplement
    12                                 // U+00AA ª
    13                                 chr(194).chr(170) => 'a',
    14                                 // U+00BA º
    15                                 chr(194).chr(186) => 'o',
    16                                 // U+00C0 À
    17                                 chr(195).chr(128) => 'A',
    18                                 // U+00C1 Á
    19                                 chr(195).chr(129) => 'A',
    20                                 // U+00C2 Â
    21                                 chr(195).chr(130) => 'A',
    22                                 // U+00C3 Ã
    23                                 chr(195).chr(131) => 'A',
    24                                 // U+00C4 Ä
    25                                 chr(195).chr(132) => 'A',
    26                                 // U+00C5 Å
    27                                 chr(195).chr(133) => 'A',
    28                                 // U+00C6 Æ
    29                                 chr(195).chr(134) => 'AE',
    30                                 // U+00C7 Ç
    31                                 chr(195).chr(135) => 'C',
    32                                 // U+00C8 È
    33                                 chr(195).chr(136) => 'E',
    34                                 // U+00C9 É
    35                                 chr(195).chr(137) => 'E',
    36                                 // U+00CA Ê
    37                                 chr(195).chr(138) => 'E',
    38                                 // U+00CB Ë
    39                                 chr(195).chr(139) => 'E',
    40                                 // U+00CC Ì
    41                                 chr(195).chr(140) => 'I',
    42                                 // U+00CD Í
    43                                 chr(195).chr(141) => 'I',
    44                                 // U+00CE Î
    45                                 chr(195).chr(142) => 'I',
    46                                 // U+00CF Ï
    47                                 chr(195).chr(143) => 'I',
    48                                 // U+00D0 Ð
    49                                 chr(195).chr(144) => 'D',
    50                                 // U+00D1 Ñ
    51                                 chr(195).chr(145) => 'N',
    52                                 // U+00D2 Ò
    53                                 chr(195).chr(146) => 'O',
    54                                 // U+00D3 Ó
    55                                 chr(195).chr(147) => 'O',
    56                                 // U+00D4 Ô
    57                                 chr(195).chr(148) => 'O',
    58                                 // U+00D5 Õ
    59                                 chr(195).chr(149) => 'O',
    60                                 // U+00D6 Ö
    61                                 chr(195).chr(150) => 'O',
    62                                 // U+00D8 Ø
    63                                 chr(195).chr(152) => 'O',
    64                                 // U+00D9 Ù
    65                                 chr(195).chr(153) => 'U',
    66                                 // U+00DA Ú
    67                                 chr(195).chr(154) => 'U',
    68                                 // U+00DB Û
    69                                 chr(195).chr(155) => 'U',
    70                                 // U+00DC Ü
    71                                 chr(195).chr(156) => 'U',
    72                                 // U+00DD Ý
    73                                 chr(195).chr(157) => 'Y',
    74                                 // U+00DE Þ
    75                                 chr(195).chr(158) => 'TH',
    76                                 // U+00DF ß
    77                                 chr(195).chr(159) => 's',
    78                                 // U+00E0 à
    79                                 chr(195).chr(160) => 'a',
    80                                 // U+00E1 á
    81                                 chr(195).chr(161) => 'a',
    82                                 // U+00E2 â
    83                                 chr(195).chr(162) => 'a',
    84                                 // U+00E3 ã
    85                                 chr(195).chr(163) => 'a',
    86                                 // U+00E4 ä
    87                                 chr(195).chr(164) => 'a',
    88                                 // U+00E5 å
    89                                 chr(195).chr(165) => 'a',
    90                                 // U+00E6 æ
    91                                 chr(195).chr(166) => 'ae',
    92                                 // U+00E7 ç
    93                                 chr(195).chr(167) => 'c',
    94                                 // U+00E8 è
    95                                 chr(195).chr(168) => 'e',
    96                                 // U+00E9 é
    97                                 chr(195).chr(169) => 'e',
    98                                 // U+00EA ê
    99                                 chr(195).chr(170) => 'e',
    100                                 // U+00EB ë
    101                                 chr(195).chr(171) => 'e',
    102                                 // U+00EC ì
    103                                 chr(195).chr(172) => 'i',
    104                                 // U+00ED í
    105                                 chr(195).chr(173) => 'i',
    106                                 // U+00EE î
    107                                 chr(195).chr(174) => 'i',
    108                                 // U+00EF ï
    109                                 chr(195).chr(175) => 'i',
    110                                 // U+00F0 ð
    111                                 chr(195).chr(176) => 'd',
    112                                 // U+00F1 ñ
    113                                 chr(195).chr(177) => 'n',
    114                                 // U+00F2 ò
    115                                 chr(195).chr(178) => 'o',
    116                                 // U+00F3 ó
    117                                 chr(195).chr(179) => 'o',
    118                                 // U+00F4 ô
    119                                 chr(195).chr(180) => 'o',
    120                                 // U+00F5 õ
    121                                 chr(195).chr(181) => 'o',
    122                                 // U+00F6 ö
    123                                 chr(195).chr(182) => 'o',
    124                                 // U+00F8 ø
    125                                 chr(195).chr(184) => 'o',
    126                                 // U+00F9 ù
    127                                 chr(195).chr(185) => 'u',
    128                                 // U+00FA ú
    129                                 chr(195).chr(186) => 'u',
    130                                 // U+00FB û
    131                                 chr(195).chr(187) => 'u',
    132                                 // U+00FC ü
    133                                 chr(195).chr(188) => 'u',
    134                                 // U+00FD ý
    135                                 chr(195).chr(189) => 'y',
    136                                 // U+00FE þ
    137                                 chr(195).chr(190) => 'th',
    138                                 // U+00FF ÿ
    139                                 chr(195).chr(191) => 'y',
    140                                 // Decompositions for Latin Extended-A
    141                                 // U+0100 Ā
    142                                 chr(196).chr(128) => 'A',
    143                                 // U+0101 ā
    144                                 chr(196).chr(129) => 'a',
    145                                 // U+0102 Ă
    146                                 chr(196).chr(130) => 'A',
    147                                 // U+0103 ă
    148                                 chr(196).chr(131) => 'a',
    149                                 // U+0104 Ą
    150                                 chr(196).chr(132) => 'A',
    151                                 // U+0105 ą
    152                                 chr(196).chr(133) => 'a',
    153                                 // U+01006 Ć
    154                                 chr(196).chr(134) => 'C',
    155                                 // U+0107 ć
    156                                 chr(196).chr(135) => 'c',
    157                                 // U+0108 Ĉ
    158                                 chr(196).chr(136) => 'C',
    159                                 // U+0109 ĉ
    160                                 chr(196).chr(137) => 'c',
    161                                 // U+010A Ċ
    162                                 chr(196).chr(138) => 'C',
    163                                 // U+010B ċ
    164                                 chr(196).chr(139) => 'c',
    165                                 // U+010C Č
    166                                 chr(196).chr(140) => 'C',
    167                                 // U+010D č
    168                                 chr(196).chr(141) => 'c',
    169                                 // U+010E Ď
    170                                 chr(196).chr(142) => 'D',
    171                                 // U+010F ď
    172                                 chr(196).chr(143) => 'd',
    173                                 // U+0110 Đ
    174                                 chr(196).chr(144) => 'D',
    175                                 // U+0111 đ
    176                                 chr(196).chr(145) => 'd',
    177                                 // U+0112 Ē
    178                                 chr(196).chr(146) => 'E',
    179                                 // U+0113 ē
    180                                 chr(196).chr(147) => 'e',
    181                                 // U+0114 Ĕ
    182                                 chr(196).chr(148) => 'E',
    183                                 // U+0115 ĕ
    184                                 chr(196).chr(149) => 'e',
    185                                 // U+0116 Ė
    186                                 chr(196).chr(150) => 'E',
    187                                 // U+0117 ė
    188                                 chr(196).chr(151) => 'e',
    189                                 // U+0118 Ę
    190                                 chr(196).chr(152) => 'E',
    191                                 // U+0119 ę
    192                                 chr(196).chr(153) => 'e',
    193                                 // U+011A Ě
    194                                 chr(196).chr(154) => 'E',
    195                                 // U+011B ě
    196                                 chr(196).chr(155) => 'e',
    197                                 // U+011C Ĝ
    198                                 chr(196).chr(156) => 'G',
    199                                 // U+011D ĝ
    200                                 chr(196).chr(157) => 'g',
    201                                 // U+011E Ğ
    202                                 chr(196).chr(158) => 'G',
    203                                 // U+011F ğ
    204                                 chr(196).chr(159) => 'g',
    205                                 // U+0120 Ġ
    206                                 chr(196).chr(160) => 'G',
    207                                 // U+0121 ġ
    208                                 chr(196).chr(161) => 'g',
    209                                 // U+0122 Ģ
    210                                 chr(196).chr(162) => 'G',
    211                                 // U+0123 ģ
    212                                 chr(196).chr(163) => 'g',
    213                                 // U+0124 Ĥ
    214                                 chr(196).chr(164) => 'H',
    215                                 // U+0125 ĥ
    216                                 chr(196).chr(165) => 'h',
    217                                 // U+0126 Ħ
    218                                 chr(196).chr(166) => 'H',
    219                                 // U+0127 ħ
    220                                 chr(196).chr(167) => 'h',
    221                                 // U+0128 Ĩ
    222                                 chr(196).chr(168) => 'I',
    223                                 // U+0129 ĩ
    224                                 chr(196).chr(169) => 'i',
    225                                 // U+012A Ī
    226                                 chr(196).chr(170) => 'I',
    227                                 // U+012B ī
    228                                 chr(196).chr(171) => 'i',
    229                                 // U+012C Ĭ
    230                                 chr(196).chr(172) => 'I',
    231                                 // U+012D ĭ
    232                                 chr(196).chr(173) => 'i',
    233                                 // U+012E Į
    234                                 chr(196).chr(174) => 'I',
    235                                 // U+012F į
    236                                 chr(196).chr(175) => 'i',
    237                                 // U+0130 İ
    238                                 chr(196).chr(176) => 'I',
    239                                 // U+0131 ı
    240                                 chr(196).chr(177) => 'i',
    241                                 // U+0132 IJ
    242                                 chr(196).chr(178) => 'IJ',
    243                                 // U+0133 ij
    244                                 chr(196).chr(179) => 'ij',
    245                                 // U+0134 Ĵ
    246                                 chr(196).chr(180) => 'J',
    247                                 // U+0135 ĵ
    248                                 chr(196).chr(181) => 'j',
    249                                 // U+0136 Ķ
    250                                 chr(196).chr(182) => 'K',
    251                                 // U+0137 ķ
    252                                 chr(196).chr(183) => 'k',
    253                                 // U+0138 ĸ
    254                                 chr(196).chr(184) => 'k',
    255                                 // U+0139 Ĺ
    256                                 chr(196).chr(185) => 'L',
    257                                 // U+013A ĺ
    258                                 chr(196).chr(186) => 'l',
    259                                 // U+013B Ļ
    260                                 chr(196).chr(187) => 'L',
    261                                 // U+013C ļ
    262                                 chr(196).chr(188) => 'l',
    263                                 // U+013D Ľ
    264                                 chr(196).chr(189) => 'L',
    265                                 // U+013E ľ
    266                                 chr(196).chr(190) => 'l',
    267                                 // U+013F Ŀ
    268                                 chr(196).chr(191) => 'L',
    269                                 // U+0140 ŀ
    270                                 chr(197).chr(128) => 'l',
    271                                 // U+0141 Ł
    272                                 chr(197).chr(129) => 'L',
    273                                 // U+0142 ł
    274                                 chr(197).chr(130) => 'l',
    275                                 // U+0143 Ń
    276                                 chr(197).chr(131) => 'N',
    277                                 // U+0144 ń
    278                                 chr(197).chr(132) => 'n',
    279                                 // U+0145 Ņ
    280                                 chr(197).chr(133) => 'N',
    281                                 // U+0146 ņ
    282                                 chr(197).chr(134) => 'n',
    283                                 // U+0147 Ň
    284                                 chr(197).chr(135) => 'N',
    285                                 // U+0148 ň
    286                                 chr(197).chr(136) => 'n',
    287                                 // U+0149 ʼn
    288                                 chr(197).chr(137) => 'N',
    289                                 // U+014A Ŋ
    290                                 chr(197).chr(138) => 'n',
    291                                 // U+014B ŋ
    292                                 chr(197).chr(139) => 'N',
    293                                 // U+014C Ō
    294                                 chr(197).chr(140) => 'O',
    295                                 // U+014D ō
    296                                 chr(197).chr(141) => 'o',
    297                                 // U+014E Ŏ
    298                                 chr(197).chr(142) => 'O',
    299                                 // U+014F ŏ
    300                                 chr(197).chr(143) => 'o',
    301                                 // U+0150 Ő
    302                                 chr(197).chr(144) => 'O',
    303                                 // U+0151 ő
    304                                 chr(197).chr(145) => 'o',
    305                                 // U+0152 Œ
    306                                 chr(197).chr(146) => 'OE',
    307                                 // U+0153 œ
    308                                 chr(197).chr(147) => 'oe',
    309                                 // U+0154 Ŕ
    310                                 chr(197).chr(148) => 'R',
    311                                 // U+0155 ŕ
    312                                 chr(197).chr(149) => 'r',
    313                                 // U+0156 Ŗ
    314                                 chr(197).chr(150) => 'R',
    315                                 // U+0157 ŗ
    316                                 chr(197).chr(151) => 'r',
    317                                 // U+0158 Ř
    318                                 chr(197).chr(152) => 'R',
    319                                 // U+0159 ř
    320                                 chr(197).chr(153) => 'r',
    321                                 // U+015A Ś
    322                                 chr(197).chr(154) => 'S',
    323                                 // U+015B ś
    324                                 chr(197).chr(155) => 's',
    325                                 // U+015C Ŝ
    326                                 chr(197).chr(156) => 'S',
    327                                 // U+015D ŝ
    328                                 chr(197).chr(157) => 's',
    329                                 // U+015E Ş
    330                                 chr(197).chr(158) => 'S',
    331                                 // U+015F ş
    332                                 chr(197).chr(159) => 's',
    333                                 // U+0160 Š
    334                                 chr(197).chr(160) => 'S',
    335                                 // U+0161 š
    336                                 chr(197).chr(161) => 's',
    337                                 // U+0162 Ţ
    338                                 chr(197).chr(162) => 'T',
    339                                 // U+0163 ţ
    340                                 chr(197).chr(163) => 't',
    341                                 // U+0164 Ť
    342                                 chr(197).chr(164) => 'T',
    343                                 // U+0165 ť
    344                                 chr(197).chr(165) => 't',
    345                                 // U+0166 Ŧ
    346                                 chr(197).chr(166) => 'T',
    347                                 // U+0167 ŧ
    348                                 chr(197).chr(167) => 't',
    349                                 // U+0168 Ũ
    350                                 chr(197).chr(168) => 'U',
    351                                 // U+0169 ũ
    352                                 chr(197).chr(169) => 'u',
    353                                 // U+016A Ū
    354                                 chr(197).chr(170) => 'U',
    355                                 // U+016B ū
    356                                 chr(197).chr(171) => 'u',
    357                                 // U+016C Ŭ
    358                                 chr(197).chr(172) => 'U',
    359                                 // U+016D ŭ
    360                                 chr(197).chr(173) => 'u',
    361                                 // U+016E Ů
    362                                 chr(197).chr(174) => 'U',
    363                                 // U+016F ů
    364                                 chr(197).chr(175) => 'u',
    365                                 // U+0170 Ű
    366                                 chr(197).chr(176) => 'U',
    367                                 // U+0171 ű
    368                                 chr(197).chr(177) => 'u',
    369                                 // U+0172 Ų
    370                                 chr(197).chr(178) => 'U',
    371                                 // U+0173 ų
    372                                 chr(197).chr(179) => 'u',
    373                                 // U+0174 Ŵ
    374                                 chr(197).chr(180) => 'W',
    375                                 // U+0175 ŵ
    376                                 chr(197).chr(181) => 'w',
    377                                 // U+0176 Ŷ
    378                                 chr(197).chr(182) => 'Y',
    379                                 // U+0177 ŷ
    380                                 chr(197).chr(183) => 'y',
    381                                 // U+0178 Ÿ
    382                                 chr(197).chr(184) => 'Y',
    383                                 // U+0179 Ź
    384                                 chr(197).chr(185) => 'Z',
    385                                 // U+017A ź
    386                                 chr(197).chr(186) => 'z',
    387                                 // U+017B Ż
    388                                 chr(197).chr(187) => 'Z',
    389                                 // U+017C ż
    390                                 chr(197).chr(188) => 'z',
    391                                 // U+017D Ž
    392                                 chr(197).chr(189) => 'Z',
    393                                 // U+017E ž
    394                                 chr(197).chr(190) => 'z',
    395                                 // U+017F ſ
    396                                 chr(197).chr(191) => 's',
    397 // XXX Add remainder of 198-128 (U+0181) thru 199-191 (U+01FF)
    398                                 // U+01A0 | Ơ | LATIN CAPITAL LETTER O WITH HORN
    399                                 chr(198).chr(160) => 'O',
    400                                 // U+01A1 | ơ | LATIN SMALL LETTER O WITH HORN
    401                                 chr(198).chr(161) => 'o',
    402                                 // U+01AF | Ư | LATIN CAPITAL LETTER U WITH HORN
    403                                 chr(198).chr(175) => 'U',
    404                                 // U+01B0 | ư | LATIN SMALL LETTER U WITH HORN
    405                                 chr(198).chr(176) => 'u',
    406                                 // U+01CD | Ǎ | LATIN CAPITAL LETTER A WITH CARON
    407                                 chr(199).chr(141) => 'A',
    408                                 // U+01CE | ǎ | LATIN SMALL LETTER A WITH CARON
    409                                 chr(199).chr(142) => 'a',
    410                                 // U+01CF | Ǐ | LATIN CAPITAL LETTER I WITH CARON
    411                                 chr(199).chr(143) => 'I',
    412                                 // U+01D0 | ǐ | LATIN SMALL LETTER I WITH CARON
    413                                 chr(199).chr(144) => 'i',
    414                                 // U+01D1 | Ǒ | LATIN CAPITAL LETTER O WITH CARON
    415                                 chr(199).chr(145) => 'O',
    416                                 // U+01D2 | ǒ | LATIN SMALL LETTER O WITH CARON
    417                                 chr(199).chr(146) => 'o',
    418                                 // U+01D3 | Ǔ | LATIN CAPITAL LETTER U WITH CARON
    419                                 chr(199).chr(147) => 'U',
    420                                 // U+01D4 | ǔ | LATIN SMALL LETTER U WITH CARON
    421                                 chr(199).chr(148) => 'u',
    422                                 // U+01D5 | Ǖ | LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON
    423                                 chr(199).chr(149) => 'U',
    424                                 // U+01D6 | ǖ | LATIN SMALL LETTER U WITH DIAERESIS AND MACRON
    425                                 chr(199).chr(150) => 'u',
    426                                 // U+01D7 | Ǘ | LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
    427                                 chr(199).chr(151) => 'U',
    428                                 // U+01D8 | ǘ | LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
    429                                 chr(199).chr(152) => 'u',
    430                                 // U+01D9 | Ǚ | LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON
    431                                 chr(199).chr(153) => 'U',
    432                                 // U+01DA | ǚ | LATIN SMALL LETTER U WITH DIAERESIS AND CARON
    433                                 chr(199).chr(154) => 'u',
    434                                 // U+01DB | Ǜ | LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
    435                                 chr(199).chr(155) => 'U',
    436                                 // U+01DC | ǜ | LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
    437                                 chr(199).chr(156) => 'u',
    438                                 // U+0218 | Ș | LATIN CAPITAL LETTER S WITH COMMA BELOW
    439                                 chr(200).chr(152) => 'S',
    440                                 // U+0219 | ș | LATIN SMALL LETTER S WITH COMMA BELOW
    441                                 chr(200).chr(153) => 's',
    442                                 // U+021A | Ț | LATIN CAPITAL LETTER T WITH COMMA BELOW
    443                                 chr(200).chr(154) => 'T',
    444                                 // U+021B | ț | LATIN SMALL LETTER T WITH COMMA BELOW
    445                                 chr(200).chr(155) => 't',
    446                         // Vowels with diacritic (Chinese, Hanyu Pinyin)
    447                                 // U+0251 | ɑ | LATIN SMALL LETTER ALPHA
    448                                 chr(201).chr(145) => 'a',
    449 // XXX finish these comments to show what character is what.
    450                                 // grave accent
    451                                 chr(225).chr(186).chr(166) => 'A',
    452                                 chr(225).chr(186).chr(167) => 'a',
    453                                 chr(225).chr(186).chr(176) => 'A',
    454                                 chr(225).chr(186).chr(177) => 'a',
    455                                 chr(225).chr(187).chr(128) => 'E',
    456                                 chr(225).chr(187).chr(129) => 'e',
    457                                 chr(225).chr(187).chr(146) => 'O',
    458                                 chr(225).chr(187).chr(147) => 'o',
    459                                 chr(225).chr(187).chr(156) => 'O',
    460                                 chr(225).chr(187).chr(157) => 'o',
    461                                 chr(225).chr(187).chr(170) => 'U',
    462                                 chr(225).chr(187).chr(171) => 'u',
    463                                 chr(225).chr(187).chr(178) => 'Y',
    464                                 chr(225).chr(187).chr(179) => 'y',
    465                                 // hook
    466                                 chr(225).chr(186).chr(162) => 'A',
    467                                 chr(225).chr(186).chr(163) => 'a',
    468                                 chr(225).chr(186).chr(168) => 'A',
    469                                 chr(225).chr(186).chr(169) => 'a',
    470                                 chr(225).chr(186).chr(178) => 'A',
    471                                 chr(225).chr(186).chr(179) => 'a',
    472                                 chr(225).chr(186).chr(186) => 'E',
    473                                 chr(225).chr(186).chr(187) => 'e',
    474                                 chr(225).chr(187).chr(130) => 'E',
    475                                 chr(225).chr(187).chr(131) => 'e',
    476                                 chr(225).chr(187).chr(136) => 'I',
    477                                 chr(225).chr(187).chr(137) => 'i',
    478                                 chr(225).chr(187).chr(142) => 'O',
    479                                 chr(225).chr(187).chr(143) => 'o',
    480                                 chr(225).chr(187).chr(148) => 'O',
    481                                 chr(225).chr(187).chr(149) => 'o',
    482                                 chr(225).chr(187).chr(158) => 'O',
    483                                 chr(225).chr(187).chr(159) => 'o',
    484                                 chr(225).chr(187).chr(166) => 'U',
    485                                 chr(225).chr(187).chr(167) => 'u',
    486                                 chr(225).chr(187).chr(172) => 'U',
    487                                 chr(225).chr(187).chr(173) => 'u',
    488                                 chr(225).chr(187).chr(182) => 'Y',
    489                                 chr(225).chr(187).chr(183) => 'y',
    490                                 // tilde
    491                                 chr(225).chr(186).chr(170) => 'A',
    492                                 chr(225).chr(186).chr(171) => 'a',
    493                                 chr(225).chr(186).chr(180) => 'A',
    494                                 chr(225).chr(186).chr(181) => 'a',
    495                                 chr(225).chr(186).chr(188) => 'E',
    496                                 chr(225).chr(186).chr(189) => 'e',
    497                                 chr(225).chr(187).chr(132) => 'E',
    498                                 chr(225).chr(187).chr(133) => 'e',
    499                                 chr(225).chr(187).chr(150) => 'O',
    500                                 chr(225).chr(187).chr(151) => 'o',
    501                                 chr(225).chr(187).chr(160) => 'O',
    502                                 chr(225).chr(187).chr(161) => 'o',
    503                                 chr(225).chr(187).chr(174) => 'U',
    504                                 chr(225).chr(187).chr(175) => 'u',
    505                                 chr(225).chr(187).chr(184) => 'Y',
    506                                 chr(225).chr(187).chr(185) => 'y',
    507                                 // acute accent
    508                                 chr(225).chr(186).chr(164) => 'A',
    509                                 chr(225).chr(186).chr(165) => 'a',
    510                                 chr(225).chr(186).chr(174) => 'A',
    511                                 chr(225).chr(186).chr(175) => 'a',
    512                                 chr(225).chr(186).chr(190) => 'E',
    513                                 chr(225).chr(186).chr(191) => 'e',
    514                                 chr(225).chr(187).chr(144) => 'O',
    515                                 chr(225).chr(187).chr(145) => 'o',
    516                                 chr(225).chr(187).chr(154) => 'O',
    517                                 chr(225).chr(187).chr(155) => 'o',
    518                                 chr(225).chr(187).chr(168) => 'U',
    519                                 chr(225).chr(187).chr(169) => 'u',
    520                                 // dot below
    521                                 chr(225).chr(186).chr(160) => 'A',
    522                                 chr(225).chr(186).chr(161) => 'a',
    523                                 chr(225).chr(186).chr(172) => 'A',
    524                                 chr(225).chr(186).chr(173) => 'a',
    525                                 chr(225).chr(186).chr(182) => 'A',
    526                                 chr(225).chr(186).chr(183) => 'a',
    527                                 chr(225).chr(186).chr(184) => 'E',
    528                                 chr(225).chr(186).chr(185) => 'e',
    529                                 chr(225).chr(187).chr(134) => 'E',
    530                                 chr(225).chr(187).chr(135) => 'e',
    531                                 chr(225).chr(187).chr(138) => 'I',
    532                                 chr(225).chr(187).chr(139) => 'i',
    533                                 chr(225).chr(187).chr(140) => 'O',
    534                                 chr(225).chr(187).chr(141) => 'o',
    535                                 chr(225).chr(187).chr(152) => 'O',
    536                                 chr(225).chr(187).chr(153) => 'o',
    537                                 chr(225).chr(187).chr(162) => 'O',
    538                                 chr(225).chr(187).chr(163) => 'o',
    539                                 chr(225).chr(187).chr(164) => 'U',
    540                                 chr(225).chr(187).chr(165) => 'u',
    541                                 chr(225).chr(187).chr(176) => 'U',
    542                                 chr(225).chr(187).chr(177) => 'u',
    543                                 chr(225).chr(187).chr(180) => 'Y',
    544                                 chr(225).chr(187).chr(181) => 'y',
    545                                 // Euro Sign
    546                                 chr(226).chr(130).chr(172) => 'E',
    547 
    548 }}}