Warning, /multimedia/kid3/src/qml/script/Tag1ToAscii.qml is written in an unsupported language. File is not indexed.

0001 /**
0002  * \file Tag1ToAscii.qml
0003  * Transliterate contents of ID3v1 tag from Extended Latin to ASCII.
0004  *
0005  * \b Project: Kid3
0006  * \author Urs Fleisch
0007  * \date 13 Apr 2020
0008  *
0009  * Copyright (C) 2020  Urs Fleisch
0010  *
0011  * This program is free software; you can redistribute it and/or modify
0012  * it under the terms of the GNU Lesser General Public License as published by
0013  * the Free Software Foundation; version 3.
0014  *
0015  * This program is distributed in the hope that it will be useful,
0016  * but WITHOUT ANY WARRANTY; without even the implied warranty of
0017  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
0018  * GNU Lesser General Public License for more details.
0019  *
0020  * You should have received a copy of the GNU Lesser General Public License
0021  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
0022  */
0023 
0024 import Kid3 1.1
0025 
0026 Kid3Script {
0027   onRun: {
0028     /**
0029      * ASCII replacements for set of extended latin characters.
0030      * Extended using some Perl modules by Martin Mareš.
0031      * $conv = Text::Iconv->new('UTF-8', 'US-ASCII//TRANSLIT');
0032      * $t = $conv->convert(Encode::encode('utf-8', chr $code));
0033      */
0034     var replacements = [
0035           ' ',   // 160   NO-BREAK SPACE
0036           '!',   // 161 ¡ INVERTED EXCLAMATION MARK
0037           'c',   // 162 ¢ CENT SIGN
0038           'L',   // 163 £ POUND SIGN
0039           'o',   // 164 ¤ CURRENCY SIGN
0040           'Y',   // 165 ¥ YEN SIGN
0041           '|',   // 166 ¦ BROKEN BAR
0042           'S',   // 167 § SECTION SIGN
0043           '`',   // 168 ¨ DIAERESIS
0044           'c',   // 169 © COPYRIGHT SIGN
0045           'a',   // 170 ª FEMININE ORDINAL INDICATOR
0046           '<<',  // 171 « LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
0047           '-',   // 172 ¬ NOT SIGN
0048           '-',   // 173   SOFT HYPHEN
0049           'R',   // 174 ® REGISTERED SIGN
0050           '-',   // 175 ¯ MACRON
0051           'o',   // 176 ° DEGREE SIGN
0052           '+-',  // 177 ± PLUS-MINUS SIGN
0053           '2',   // 178 ² SUPERSCRIPT TWO
0054           '3',   // 179 ³ SUPERSCRIPT THREE
0055           '\'',  // 180 ´ ACUTE ACCENT
0056           'u',   // 181 µ MICRO SIGN
0057           'P',   // 182 ¶ PILCROW SIGN
0058           '.',   // 183 · MIDDLE DOT
0059           ',',   // 184 ¸ CEDILLA
0060           '1',   // 185 ¹ SUPERSCRIPT ONE
0061           'o',   // 186 º MASCULINE ORDINAL INDICATOR
0062           '>>',  // 187 » RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
0063           '1/4', // 188 ¼ VULGAR FRACTION ONE QUARTER
0064           '1/2', // 189 ½ VULGAR FRACTION ONE HALF
0065           '3/4', // 190 ¾ VULGAR FRACTION THREE QUARTERS
0066           '?',   // 191 ¿ INVERTED QUESTION MARK
0067           'A',   // 192 À LATIN CAPITAL LETTER A WITH GRAVE
0068           'A',   // 193 Á LATIN CAPITAL LETTER A WITH ACUTE
0069           'A',   // 194 Â LATIN CAPITAL LETTER A WITH CIRCUMFLEX
0070           'A',   // 195 Ã LATIN CAPITAL LETTER A WITH TILDE
0071           'Ae',  // 196 Ä LATIN CAPITAL LETTER A WITH DIAERESIS
0072           'A',   // 197 Å LATIN CAPITAL LETTER A WITH RING ABOVE
0073           'AE',  // 198 Æ LATIN CAPITAL LETTER AE
0074           'C',   // 199 Ç LATIN CAPITAL LETTER C WITH CEDILLA
0075           'E',   // 200 È LATIN CAPITAL LETTER E WITH GRAVE
0076           'E',   // 201 É LATIN CAPITAL LETTER E WITH ACUTE
0077           'E',   // 202 Ê LATIN CAPITAL LETTER E WITH CIRCUMFLEX
0078           'E',   // 203 Ë LATIN CAPITAL LETTER E WITH DIAERESIS
0079           'I',   // 204 Ì LATIN CAPITAL LETTER I WITH GRAVE
0080           'I',   // 205 Í LATIN CAPITAL LETTER I WITH ACUTE
0081           'I',   // 206 Î LATIN CAPITAL LETTER I WITH CIRCUMFLEX
0082           'I',   // 207 Ï LATIN CAPITAL LETTER I WITH DIAERESIS
0083           'D',   // 208 Ð LATIN CAPITAL LETTER ETH
0084           'N',   // 209 Ñ LATIN CAPITAL LETTER N WITH TILDE
0085           'O',   // 210 Ò LATIN CAPITAL LETTER O WITH GRAVE
0086           'O',   // 211 Ó LATIN CAPITAL LETTER O WITH ACUTE
0087           'O',   // 212 Ô LATIN CAPITAL LETTER O WITH CIRCUMFLEX
0088           'O',   // 213 Õ LATIN CAPITAL LETTER O WITH TILDE
0089           'Oe',  // 214 Ö LATIN CAPITAL LETTER O WITH DIAERESIS
0090           'x',   // 215 × MULTIPLICATION SIGN
0091           'O',   // 216 Ø LATIN CAPITAL LETTER O WITH STROKE
0092           'U',   // 217 Ù LATIN CAPITAL LETTER U WITH GRAVE
0093           'U',   // 218 Ú LATIN CAPITAL LETTER U WITH ACUTE
0094           'U',   // 219 Û LATIN CAPITAL LETTER U WITH CIRCUMFLEX
0095           'Ue',  // 220 Ü LATIN CAPITAL LETTER U WITH DIAERESIS
0096           'Y',   // 221 Ý LATIN CAPITAL LETTER Y WITH ACUTE
0097           'p',   // 222 Þ LATIN CAPITAL LETTER THORN
0098           'ss',  // 223 ß LATIN SMALL LETTER SHARP S
0099           'a',   // 224 à LATIN SMALL LETTER A WITH GRAVE
0100           'a',   // 225 á LATIN SMALL LETTER A WITH ACUTE
0101           'a',   // 226 â LATIN SMALL LETTER A WITH CIRCUMFLEX
0102           'a',   // 227 ã LATIN SMALL LETTER A WITH TILDE
0103           'ae',  // 228 ä LATIN SMALL LETTER A WITH DIAERESIS
0104           'a',   // 229 å LATIN SMALL LETTER A WITH RING ABOVE
0105           'ae',  // 230 æ LATIN SMALL LETTER AE
0106           'c',   // 231 ç LATIN SMALL LETTER C WITH CEDILLA
0107           'e',   // 232 è LATIN SMALL LETTER E WITH GRAVE
0108           'e',   // 233 é LATIN SMALL LETTER E WITH ACUTE
0109           'e',   // 234 ê LATIN SMALL LETTER E WITH CIRCUMFLEX
0110           'e',   // 235 ë LATIN SMALL LETTER E WITH DIAERESIS
0111           'i',   // 236 ì LATIN SMALL LETTER I WITH GRAVE
0112           'i',   // 237 í LATIN SMALL LETTER I WITH ACUTE
0113           'i',   // 238 î LATIN SMALL LETTER I WITH CIRCUMFLEX
0114           'i',   // 239 ï LATIN SMALL LETTER I WITH DIAERESIS
0115           'o',   // 240 ð LATIN SMALL LETTER ETH
0116           'n',   // 241 ñ LATIN SMALL LETTER N WITH TILDE
0117           'o',   // 242 ò LATIN SMALL LETTER O WITH GRAVE
0118           'o',   // 243 ó LATIN SMALL LETTER O WITH ACUTE
0119           'o',   // 244 ô LATIN SMALL LETTER O WITH CIRCUMFLEX
0120           'o',   // 245 õ LATIN SMALL LETTER O WITH TILDE
0121           'oe',  // 246 ö LATIN SMALL LETTER O WITH DIAERESIS
0122           '/',   // 247 ÷ DIVISION SIGN
0123           'o',   // 248 ø LATIN SMALL LETTER O WITH STROKE
0124           'u',   // 249 ù LATIN SMALL LETTER U WITH GRAVE
0125           'u',   // 250 ú LATIN SMALL LETTER U WITH ACUTE
0126           'u',   // 251 û LATIN SMALL LETTER U WITH CIRCUMFLEX
0127           'ue',  // 252 ü LATIN SMALL LETTER U WITH DIAERESIS
0128           'y',   // 253 ý LATIN SMALL LETTER Y WITH ACUTE
0129           'p',   // 254 þ LATIN SMALL LETTER THORN
0130           'y',   // 255 ÿ LATIN SMALL LETTER Y WITH DIAERESIS
0131           'A',   // 256 Ā LATIN CAPITAL LETTER A WITH MACRON
0132           'a',   // 257 ā LATIN SMALL LETTER A WITH MACRON
0133           'A',   // 258 Ă LATIN CAPITAL LETTER A WITH BREVE
0134           'a',   // 259 ă LATIN SMALL LETTER A WITH BREVE
0135           'A',   // 260 Ą LATIN CAPITAL LETTER A WITH OGONEK
0136           'a',   // 261 ą LATIN SMALL LETTER A WITH OGONEK
0137           'C',   // 262 Ć LATIN CAPITAL LETTER C WITH ACUTE
0138           'c',   // 263 ć LATIN SMALL LETTER C WITH ACUTE
0139           'C',   // 264 Ĉ LATIN CAPITAL LETTER C WITH CIRCUMFLEX
0140           'c',   // 265 ĉ LATIN SMALL LETTER C WITH CIRCUMFLEX
0141           'C',   // 266 Ċ LATIN CAPITAL LETTER C WITH DOT ABOVE
0142           'c',   // 267 ċ LATIN SMALL LETTER C WITH DOT ABOVE
0143           'C',   // 268 Č LATIN CAPITAL LETTER C WITH CARON
0144           'c',   // 269 č LATIN SMALL LETTER C WITH CARON
0145           'D',   // 270 Ď LATIN CAPITAL LETTER D WITH CARON
0146           'd',   // 271 ď LATIN SMALL LETTER D WITH CARON
0147           'D',   // 272 Đ LATIN CAPITAL LETTER D WITH STROKE
0148           'd',   // 273 đ LATIN SMALL LETTER D WITH STROKE
0149           'E',   // 274 Ē LATIN CAPITAL LETTER E WITH MACRON
0150           'e',   // 275 ē LATIN SMALL LETTER E WITH MACRON
0151           'E',   // 276 Ĕ LATIN CAPITAL LETTER E WITH BREVE
0152           'e',   // 277 ĕ LATIN SMALL LETTER E WITH BREVE
0153           'E',   // 278 Ė LATIN CAPITAL LETTER E WITH DOT ABOVE
0154           'e',   // 279 ė LATIN SMALL LETTER E WITH DOT ABOVE
0155           'E',   // 280 Ę LATIN CAPITAL LETTER E WITH OGONEK
0156           'e',   // 281 ę LATIN SMALL LETTER E WITH OGONEK
0157           'E',   // 282 Ě LATIN CAPITAL LETTER E WITH CARON
0158           'e',   // 283 ě LATIN SMALL LETTER E WITH CARON
0159           'G',   // 284 Ĝ LATIN CAPITAL LETTER G WITH CIRCUMFLEX
0160           'g',   // 285 ĝ LATIN SMALL LETTER G WITH CIRCUMFLEX
0161           'G',   // 286 Ğ LATIN CAPITAL LETTER G WITH BREVE
0162           'g',   // 287 ğ LATIN SMALL LETTER G WITH BREVE
0163           'G',   // 288 Ġ LATIN CAPITAL LETTER G WITH DOT ABOVE
0164           'g',   // 289 ġ LATIN SMALL LETTER G WITH DOT ABOVE
0165           'G',   // 290 Ģ LATIN CAPITAL LETTER G WITH CEDILLA
0166           'g',   // 291 ģ LATIN SMALL LETTER G WITH CEDILLA
0167           'H',   // 292 Ĥ LATIN CAPITAL LETTER H WITH CIRCUMFLEX
0168           'h',   // 293 ĥ LATIN SMALL LETTER H WITH CIRCUMFLEX
0169           'H',   // 294 Ħ LATIN CAPITAL LETTER H WITH STROKE
0170           'h',   // 295 ħ LATIN SMALL LETTER H WITH STROKE
0171           'I',   // 296 Ĩ LATIN CAPITAL LETTER I WITH TILDE
0172           'i',   // 297 ĩ LATIN SMALL LETTER I WITH TILDE
0173           'I',   // 298 Ī LATIN CAPITAL LETTER I WITH MACRON
0174           'i',   // 299 ī LATIN SMALL LETTER I WITH MACRON
0175           'I',   // 300 Ĭ LATIN CAPITAL LETTER I WITH BREVE
0176           'i',   // 301 ĭ LATIN SMALL LETTER I WITH BREVE
0177           'I',   // 302 Į LATIN CAPITAL LETTER I WITH OGONEK
0178           'i',   // 303 į LATIN SMALL LETTER I WITH OGONEK
0179           'I',   // 304 İ LATIN CAPITAL LETTER I WITH DOT ABOVE
0180           'i',   // 305 ı LATIN SMALL LETTER DOTLESS I
0181           'IJ',  // 306 IJ LATIN CAPITAL LIGATURE IJ
0182           'ij',  // 307 ij LATIN SMALL LIGATURE IJ
0183           'J',   // 308 Ĵ LATIN CAPITAL LETTER J WITH CIRCUMFLEX
0184           'j',   // 309 ĵ LATIN SMALL LETTER J WITH CIRCUMFLEX
0185           'K',   // 310 Ķ LATIN CAPITAL LETTER K WITH CEDILLA
0186           'k',   // 311 ķ LATIN SMALL LETTER K WITH CEDILLA
0187           'q',   // 312 ĸ LATIN SMALL LETTER KRA
0188           'L',   // 313 Ĺ LATIN CAPITAL LETTER L WITH ACUTE
0189           'l',   // 314 ĺ LATIN SMALL LETTER L WITH ACUTE
0190           'L',   // 315 Ļ LATIN CAPITAL LETTER L WITH CEDILLA
0191           'l',   // 316 ļ LATIN SMALL LETTER L WITH CEDILLA
0192           'L',   // 317 Ľ LATIN CAPITAL LETTER L WITH CARON
0193           'l',   // 318 ľ LATIN SMALL LETTER L WITH CARON
0194           'L',   // 319 Ŀ LATIN CAPITAL LETTER L WITH MIDDLE DOT
0195           'l',   // 320 ŀ LATIN SMALL LETTER L WITH MIDDLE DOT
0196           'L',   // 321 Ł LATIN CAPITAL LETTER L WITH STROKE
0197           'l',   // 322 ł LATIN SMALL LETTER L WITH STROKE
0198           'N',   // 323 Ń LATIN CAPITAL LETTER N WITH ACUTE
0199           'n',   // 324 ń LATIN SMALL LETTER N WITH ACUTE
0200           'N',   // 325 Ņ LATIN CAPITAL LETTER N WITH CEDILLA
0201           'n',   // 326 ņ LATIN SMALL LETTER N WITH CEDILLA
0202           'N',   // 327 Ň LATIN CAPITAL LETTER N WITH CARON
0203           'n',   // 328 ň LATIN SMALL LETTER N WITH CARON
0204           '\'n', // 329 ʼn LATIN SMALL LETTER N PRECEDED BY APOSTROPHE
0205           'N',   // 330 Ŋ LATIN CAPITAL LETTER ENG
0206           'n',   // 331 ŋ LATIN SMALL LETTER ENG
0207           'O',   // 332 Ō LATIN CAPITAL LETTER O WITH MACRON
0208           'o',   // 333 ō LATIN SMALL LETTER O WITH MACRON
0209           'O',   // 334 Ŏ LATIN CAPITAL LETTER O WITH BREVE
0210           'o',   // 335 ŏ LATIN SMALL LETTER O WITH BREVE
0211           'O',   // 336 Ő LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
0212           'o',   // 337 ő LATIN SMALL LETTER O WITH DOUBLE ACUTE
0213           'OE',  // 338 ΠLATIN CAPITAL LIGATURE OE
0214           'oe',  // 339 œ LATIN SMALL LIGATURE OE
0215           'R',   // 340 Ŕ LATIN CAPITAL LETTER R WITH ACUTE
0216           'r',   // 341 ŕ LATIN SMALL LETTER R WITH ACUTE
0217           'R',   // 342 Ŗ LATIN CAPITAL LETTER R WITH CEDILLA
0218           'r',   // 343 ŗ LATIN SMALL LETTER R WITH CEDILLA
0219           'R',   // 344 Ř LATIN CAPITAL LETTER R WITH CARON
0220           'r',   // 345 ř LATIN SMALL LETTER R WITH CARON
0221           'S',   // 346 Ś LATIN CAPITAL LETTER S WITH ACUTE
0222           's',   // 347 ś LATIN SMALL LETTER S WITH ACUTE
0223           'S',   // 348 Ŝ LATIN CAPITAL LETTER S WITH CIRCUMFLEX
0224           's',   // 349 ŝ LATIN SMALL LETTER S WITH CIRCUMFLEX
0225           'S',   // 350 Ş LATIN CAPITAL LETTER S WITH CEDILLA
0226           's',   // 351 ş LATIN SMALL LETTER S WITH CEDILLA
0227           'S',   // 352 Š LATIN CAPITAL LETTER S WITH CARON
0228           's',   // 353 š LATIN SMALL LETTER S WITH CARON
0229           'T',   // 354 Ţ LATIN CAPITAL LETTER T WITH CEDILLA
0230           't',   // 355 ţ LATIN SMALL LETTER T WITH CEDILLA
0231           'T',   // 356 Ť LATIN CAPITAL LETTER T WITH CARON
0232           't',   // 357 ť LATIN SMALL LETTER T WITH CARON
0233           'T',   // 358 Ŧ LATIN CAPITAL LETTER T WITH STROKE
0234           't',   // 359 ŧ LATIN SMALL LETTER T WITH STROKE
0235           'U',   // 360 Ũ LATIN CAPITAL LETTER U WITH TILDE
0236           'u',   // 361 ũ LATIN SMALL LETTER U WITH TILDE
0237           'U',   // 362 Ū LATIN CAPITAL LETTER U WITH MACRON
0238           'u',   // 363 ū LATIN SMALL LETTER U WITH MACRON
0239           'U',   // 364 Ŭ LATIN CAPITAL LETTER U WITH BREVE
0240           'u',   // 365 ŭ LATIN SMALL LETTER U WITH BREVE
0241           'U',   // 366 Ů LATIN CAPITAL LETTER U WITH RING ABOVE
0242           'u',   // 367 ů LATIN SMALL LETTER U WITH RING ABOVE
0243           'U',   // 368 Ű LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
0244           'u',   // 369 ű LATIN SMALL LETTER U WITH DOUBLE ACUTE
0245           'U',   // 370 Ų LATIN CAPITAL LETTER U WITH OGONEK
0246           'u',   // 371 ų LATIN SMALL LETTER U WITH OGONEK
0247           'W',   // 372 Ŵ LATIN CAPITAL LETTER W WITH CIRCUMFLEX
0248           'w',   // 373 ŵ LATIN SMALL LETTER W WITH CIRCUMFLEX
0249           'Y',   // 374 Ŷ LATIN CAPITAL LETTER Y WITH CIRCUMFLEX
0250           'y',   // 375 ŷ LATIN SMALL LETTER Y WITH CIRCUMFLEX
0251           'Y',   // 376 Ÿ LATIN CAPITAL LETTER Y WITH DIAERESIS
0252           'Z',   // 377 Ź LATIN CAPITAL LETTER Z WITH ACUTE
0253           'z',   // 378 ź LATIN SMALL LETTER Z WITH ACUTE
0254           'Z',   // 379 Ż LATIN CAPITAL LETTER Z WITH DOT ABOVE
0255           'z',   // 380 ż LATIN SMALL LETTER Z WITH DOT ABOVE
0256           'Z',   // 381 Ž LATIN CAPITAL LETTER Z WITH CARON
0257           'z',   // 382 ž LATIN SMALL LETTER Z WITH CARON
0258           's',   // 383 ſ LATIN SMALL LETTER LONG S
0259           'b',   // 384 ƀ LATIN SMALL LETTER B WITH STROKE
0260           'B',   // 385 Ɓ LATIN CAPITAL LETTER B WITH HOOK
0261           'B',   // 386 Ƃ LATIN CAPITAL LETTER B WITH TOPBAR
0262           'b',   // 387 ƃ LATIN SMALL LETTER B WITH TOPBAR
0263           '6',   // 388 Ƅ LATIN CAPITAL LETTER TONE SIX
0264           '6',   // 389 ƅ LATIN SMALL LETTER TONE SIX
0265           'O',   // 390 Ɔ LATIN CAPITAL LETTER OPEN O
0266           'C',   // 391 Ƈ LATIN CAPITAL LETTER C WITH HOOK
0267           'c',   // 392 ƈ LATIN SMALL LETTER C WITH HOOK
0268           'D',   // 393 Ɖ LATIN CAPITAL LETTER AFRICAN D
0269           'D',   // 394 Ɗ LATIN CAPITAL LETTER D WITH HOOK
0270           'D',   // 395 Ƌ LATIN CAPITAL LETTER D WITH TOPBAR
0271           'd',   // 396 ƌ LATIN SMALL LETTER D WITH TOPBAR
0272           'd',   // 397 ƍ LATIN SMALL LETTER TURNED DELTA
0273           'E',   // 398 Ǝ LATIN CAPITAL LETTER REVERSED E
0274           'd',   // 399 Ə LATIN CAPITAL LETTER SCHWA
0275           'E',   // 400 Ɛ LATIN CAPITAL LETTER OPEN E
0276           'F',   // 401 Ƒ LATIN CAPITAL LETTER F WITH HOOK
0277           'f',   // 402 ƒ LATIN SMALL LETTER F WITH HOOK
0278           'G',   // 403 Ɠ LATIN CAPITAL LETTER G WITH HOOK
0279           'Y',   // 404 Ɣ LATIN CAPITAL LETTER GAMMA
0280           'hv',  // 405 ƕ LATIN SMALL LETTER HV
0281           'I',   // 406 Ɩ LATIN CAPITAL LETTER IOTA
0282           'I',   // 407 Ɨ LATIN CAPITAL LETTER I WITH STROKE
0283           'K',   // 408 Ƙ LATIN CAPITAL LETTER K WITH HOOK
0284           'k',   // 409 ƙ LATIN SMALL LETTER K WITH HOOK
0285           'l',   // 410 ƚ LATIN SMALL LETTER L WITH BAR
0286           'L',   // 411 ƛ LATIN SMALL LETTER LAMBDA WITH STROKE
0287           'W',   // 412 Ɯ LATIN CAPITAL LETTER TURNED M
0288           'N',   // 413 Ɲ LATIN CAPITAL LETTER N WITH LEFT HOOK
0289           'n',   // 414 ƞ LATIN SMALL LETTER N WITH LONG RIGHT LEG
0290           'O',   // 415 Ɵ LATIN CAPITAL LETTER O WITH MIDDLE TILDE
0291           'O',   // 416 Ơ LATIN CAPITAL LETTER O WITH HORN
0292           'o',   // 417 ơ LATIN SMALL LETTER O WITH HORN
0293           'OI',  // 418 Ƣ LATIN CAPITAL LETTER OI
0294           'oi',  // 419 ƣ LATIN SMALL LETTER OI
0295           'P',   // 420 Ƥ LATIN CAPITAL LETTER P WITH HOOK
0296           'p',   // 421 ƥ LATIN SMALL LETTER P WITH HOOK
0297           'R',   // 422 Ʀ LATIN LETTER YR
0298           '2',   // 423 Ƨ LATIN CAPITAL LETTER TONE TWO
0299           '2',   // 424 ƨ LATIN SMALL LETTER TONE TWO
0300           'E',   // 425 Ʃ LATIN CAPITAL LETTER ESH
0301           'E',   // 426 ƪ LATIN LETTER REVERSED ESH LOOP
0302           't',   // 427 ƫ LATIN SMALL LETTER T WITH PALATAL HOOK
0303           'T',   // 428 Ƭ LATIN CAPITAL LETTER T WITH HOOK
0304           't',   // 429 ƭ LATIN SMALL LETTER T WITH HOOK
0305           'T',   // 430 Ʈ LATIN CAPITAL LETTER T WITH RETROFLEX HOOK
0306           'U',   // 431 Ư LATIN CAPITAL LETTER U WITH HORN
0307           'u',   // 432 ư LATIN SMALL LETTER U WITH HORN
0308           'U',   // 433 Ʊ LATIN CAPITAL LETTER UPSILON
0309           'V',   // 434 Ʋ LATIN CAPITAL LETTER V WITH HOOK
0310           'Y',   // 435 Ƴ LATIN CAPITAL LETTER Y WITH HOOK
0311           'y',   // 436 ƴ LATIN SMALL LETTER Y WITH HOOK
0312           'Z',   // 437 Ƶ LATIN CAPITAL LETTER Z WITH STROKE
0313           'z',   // 438 ƶ LATIN SMALL LETTER Z WITH STROKE
0314           '3',   // 439 Ʒ LATIN CAPITAL LETTER EZH
0315           '3',   // 440 Ƹ LATIN CAPITAL LETTER EZH REVERSED
0316           '3',   // 441 ƹ LATIN SMALL LETTER EZH REVERSED
0317           '3',   // 442 ƺ LATIN SMALL LETTER EZH WITH TAIL
0318           '2',   // 443 ƻ LATIN LETTER TWO WITH STROKE
0319           '5',   // 444 Ƽ LATIN CAPITAL LETTER TONE FIVE
0320           '5',   // 445 ƽ LATIN SMALL LETTER TONE FIVE
0321           's',   // 446 ƾ LATIN LETTER INVERTED GLOTTAL STOP WITH STROKE
0322           'p',   // 447 ƿ LATIN LETTER WYNN
0323           '|',   // 448 ǀ LATIN LETTER DENTAL CLICK
0324           '||',  // 449 ǁ LATIN LETTER LATERAL CLICK
0325           '#',   // 450 ǂ LATIN LETTER ALVEOLAR CLICK
0326           '!',   // 451 ǃ LATIN LETTER RETROFLEX CLICK
0327           'DZ',  // 452 DŽ LATIN CAPITAL LETTER DZ WITH CARON
0328           'Dz',  // 453 Dž LATIN CAPITAL LETTER D WITH SMALL LETTER Z WITH CARON
0329           'dz',  // 454 dž LATIN SMALL LETTER DZ WITH CARON
0330           'LJ',  // 455 LJ LATIN CAPITAL LETTER LJ
0331           'Lj',  // 456 Lj LATIN CAPITAL LETTER L WITH SMALL LETTER J
0332           'lj',  // 457 lj LATIN SMALL LETTER LJ
0333           'NJ',  // 458 NJ LATIN CAPITAL LETTER NJ
0334           'Nj',  // 459 Nj LATIN CAPITAL LETTER N WITH SMALL LETTER J
0335           'nj',  // 460 nj LATIN SMALL LETTER NJ
0336           'A',   // 461 Ǎ LATIN CAPITAL LETTER A WITH CARON
0337           'a',   // 462 ǎ LATIN SMALL LETTER A WITH CARON
0338           'I',   // 463 Ǐ LATIN CAPITAL LETTER I WITH CARON
0339           'i',   // 464 ǐ LATIN SMALL LETTER I WITH CARON
0340           'O',   // 465 Ǒ LATIN CAPITAL LETTER O WITH CARON
0341           'o',   // 466 ǒ LATIN SMALL LETTER O WITH CARON
0342           'U',   // 467 Ǔ LATIN CAPITAL LETTER U WITH CARON
0343           'u',   // 468 ǔ LATIN SMALL LETTER U WITH CARON
0344           'U',   // 469 Ǖ LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON
0345           'u',   // 470 ǖ LATIN SMALL LETTER U WITH DIAERESIS AND MACRON
0346           'U',   // 471 Ǘ LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
0347           'u',   // 472 ǘ LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
0348           'U',   // 473 Ǚ LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON
0349           'u',   // 474 ǚ LATIN SMALL LETTER U WITH DIAERESIS AND CARON
0350           'U',   // 475 Ǜ LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
0351           'u',   // 476 ǜ LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
0352           'e',   // 477 ǝ LATIN SMALL LETTER TURNED E
0353           'A',   // 478 Ǟ LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON
0354           'a',   // 479 ǟ LATIN SMALL LETTER A WITH DIAERESIS AND MACRON
0355           'A',   // 480 Ǡ LATIN CAPITAL LETTER A WITH DOT ABOVE AND MACRON
0356           'a',   // 481 ǡ LATIN SMALL LETTER A WITH DOT ABOVE AND MACRON
0357           'AE',  // 482 Ǣ LATIN CAPITAL LETTER AE WITH MACRON
0358           'ae',  // 483 ǣ LATIN SMALL LETTER AE WITH MACRON
0359           'G',   // 484 Ǥ LATIN CAPITAL LETTER G WITH STROKE
0360           'g',   // 485 ǥ LATIN SMALL LETTER G WITH STROKE
0361           'G',   // 486 Ǧ LATIN CAPITAL LETTER G WITH CARON
0362           'g',   // 487 ǧ LATIN SMALL LETTER G WITH CARON
0363           'K',   // 488 Ǩ LATIN CAPITAL LETTER K WITH CARON
0364           'k',   // 489 ǩ LATIN SMALL LETTER K WITH CARON
0365           'O',   // 490 Ǫ LATIN CAPITAL LETTER O WITH OGONEK
0366           'o',   // 491 ǫ LATIN SMALL LETTER O WITH OGONEK
0367           'O',   // 492 Ǭ LATIN CAPITAL LETTER O WITH OGONEK AND MACRON
0368           'o',   // 493 ǭ LATIN SMALL LETTER O WITH OGONEK AND MACRON
0369           '3',   // 494 Ǯ LATIN CAPITAL LETTER EZH WITH CARON
0370           '3',   // 495 ǯ LATIN SMALL LETTER EZH WITH CARON
0371           'j',   // 496 ǰ LATIN SMALL LETTER J WITH CARON
0372           'DZ',  // 497 DZ LATIN CAPITAL LETTER DZ
0373           'Dz',  // 498 Dz LATIN CAPITAL LETTER D WITH SMALL LETTER Z
0374           'dz',  // 499 dz LATIN SMALL LETTER DZ
0375           'G',   // 500 Ǵ LATIN CAPITAL LETTER G WITH ACUTE
0376           'g',   // 501 ǵ LATIN SMALL LETTER G WITH ACUTE
0377           'H',   // 502 Ƕ LATIN CAPITAL LETTER HWAIR
0378           'P',   // 503 Ƿ LATIN CAPITAL LETTER WYNN
0379           'N',   // 504 Ǹ LATIN CAPITAL LETTER N WITH GRAVE
0380           'n',   // 505 ǹ LATIN SMALL LETTER N WITH GRAVE
0381           'A',   // 506 Ǻ LATIN CAPITAL LETTER A WITH RING ABOVE AND ACUTE
0382           'a',   // 507 ǻ LATIN SMALL LETTER A WITH RING ABOVE AND ACUTE
0383           'AE',  // 508 Ǽ LATIN CAPITAL LETTER AE WITH ACUTE
0384           'ae',  // 509 ǽ LATIN SMALL LETTER AE WITH ACUTE
0385           'O',   // 510 Ǿ LATIN CAPITAL LETTER O WITH STROKE AND ACUTE
0386           'o',   // 511 ǿ LATIN SMALL LETTER O WITH STROKE AND ACUTE
0387           'A',   // 512 Ȁ LATIN CAPITAL LETTER A WITH DOUBLE GRAVE
0388           'a',   // 513 ȁ LATIN SMALL LETTER A WITH DOUBLE GRAVE
0389           'A',   // 514 Ȃ LATIN CAPITAL LETTER A WITH INVERTED BREVE
0390           'a',   // 515 ȃ LATIN SMALL LETTER A WITH INVERTED BREVE
0391           'E',   // 516 Ȅ LATIN CAPITAL LETTER E WITH DOUBLE GRAVE
0392           'e',   // 517 ȅ LATIN SMALL LETTER E WITH DOUBLE GRAVE
0393           'E',   // 518 Ȇ LATIN CAPITAL LETTER E WITH INVERTED BREVE
0394           'e',   // 519 ȇ LATIN SMALL LETTER E WITH INVERTED BREVE
0395           'I',   // 520 Ȉ LATIN CAPITAL LETTER I WITH DOUBLE GRAVE
0396           'i',   // 521 ȉ LATIN SMALL LETTER I WITH DOUBLE GRAVE
0397           'I',   // 522 Ȋ LATIN CAPITAL LETTER I WITH INVERTED BREVE
0398           'i',   // 523 ȋ LATIN SMALL LETTER I WITH INVERTED BREVE
0399           'O',   // 524 Ȍ LATIN CAPITAL LETTER O WITH DOUBLE GRAVE
0400           'o',   // 525 ȍ LATIN SMALL LETTER O WITH DOUBLE GRAVE
0401           'O',   // 526 Ȏ LATIN CAPITAL LETTER O WITH INVERTED BREVE
0402           'o',   // 527 ȏ LATIN SMALL LETTER O WITH INVERTED BREVE
0403           'R',   // 528 Ȑ LATIN CAPITAL LETTER R WITH DOUBLE GRAVE
0404           'r',   // 529 ȑ LATIN SMALL LETTER R WITH DOUBLE GRAVE
0405           'R',   // 530 Ȓ LATIN CAPITAL LETTER R WITH INVERTED BREVE
0406           'r',   // 531 ȓ LATIN SMALL LETTER R WITH INVERTED BREVE
0407           'U',   // 532 Ȕ LATIN CAPITAL LETTER U WITH DOUBLE GRAVE
0408           'u',   // 533 ȕ LATIN SMALL LETTER U WITH DOUBLE GRAVE
0409           'U',   // 534 Ȗ LATIN CAPITAL LETTER U WITH INVERTED BREVE
0410           'u',   // 535 ȗ LATIN SMALL LETTER U WITH INVERTED BREVE
0411           'S',   // 536 Ș LATIN CAPITAL LETTER S WITH COMMA BELOW
0412           's',   // 537 ș LATIN SMALL LETTER S WITH COMMA BELOW
0413           'T',   // 538 Ț LATIN CAPITAL LETTER T WITH COMMA BELOW
0414           't',   // 539 ț LATIN SMALL LETTER T WITH COMMA BELOW
0415           '3',   // 540 Ȝ LATIN CAPITAL LETTER YOGH
0416           '3',   // 541 ȝ LATIN SMALL LETTER YOGH
0417           'H',   // 542 Ȟ LATIN CAPITAL LETTER H WITH CARON
0418           'h',   // 543 ȟ LATIN SMALL LETTER H WITH CARON
0419           'n',   // 544 Ƞ LATIN CAPITAL LETTER N WITH LONG RIGHT LEG
0420           'd',   // 545 ȡ LATIN SMALL LETTER D WITH CURL
0421           'O',   // 546 Ȣ LATIN CAPITAL LETTER OU
0422           'o',   // 547 ȣ LATIN SMALL LETTER OU
0423           'Z',   // 548 Ȥ LATIN CAPITAL LETTER Z WITH HOOK
0424           'z',   // 549 ȥ LATIN SMALL LETTER Z WITH HOOK
0425           'A',   // 550 Ȧ LATIN CAPITAL LETTER A WITH DOT ABOVE
0426           'a',   // 551 ȧ LATIN SMALL LETTER A WITH DOT ABOVE
0427           'E',   // 552 Ȩ LATIN CAPITAL LETTER E WITH CEDILLA
0428           'e',   // 553 ȩ LATIN SMALL LETTER E WITH CEDILLA
0429           'O',   // 554 Ȫ LATIN CAPITAL LETTER O WITH DIAERESIS AND MACRON
0430           'o',   // 555 ȫ LATIN SMALL LETTER O WITH DIAERESIS AND MACRON
0431           'O',   // 556 Ȭ LATIN CAPITAL LETTER O WITH TILDE AND MACRON
0432           'o',   // 557 ȭ LATIN SMALL LETTER O WITH TILDE AND MACRON
0433           'O',   // 558 Ȯ LATIN CAPITAL LETTER O WITH DOT ABOVE
0434           'o',   // 559 ȯ LATIN SMALL LETTER O WITH DOT ABOVE
0435           'O',   // 560 Ȱ LATIN CAPITAL LETTER O WITH DOT ABOVE AND MACRON
0436           'o',   // 561 ȱ LATIN SMALL LETTER O WITH DOT ABOVE AND MACRON
0437           'Y',   // 562 Ȳ LATIN CAPITAL LETTER Y WITH MACRON
0438           'y',   // 563 ȳ LATIN SMALL LETTER Y WITH MACRON
0439           'l',   // 564 ȴ LATIN SMALL LETTER L WITH CURL
0440           'n',   // 565 ȵ LATIN SMALL LETTER N WITH CURL
0441           't',   // 566 ȶ LATIN SMALL LETTER T WITH CURL
0442           'j',   // 567 ȷ LATIN SMALL LETTER DOTLESS J
0443           'db',  // 568 ȸ LATIN SMALL LETTER DB DIGRAPH
0444           'qp',  // 569 ȹ LATIN SMALL LETTER QP DIGRAPH
0445           'A',   // 570 Ⱥ LATIN CAPITAL LETTER A WITH STROKE
0446           'C',   // 571 Ȼ LATIN CAPITAL LETTER C WITH STROKE
0447           'c',   // 572 ȼ LATIN SMALL LETTER C WITH STROKE
0448           'L',   // 573 Ƚ LATIN CAPITAL LETTER L WITH BAR
0449           'T',   // 574 Ⱦ LATIN CAPITAL LETTER T WITH DIAGONAL STROKE
0450           's',   // 575 ȿ LATIN SMALL LETTER S WITH SWASH TAIL
0451           'z',   // 576 ɀ LATIN SMALL LETTER Z WITH SWASH TAIL
0452           '?',   // 577 Ɂ LATIN CAPITAL LETTER GLOTTAL STOP
0453           '?',   // 578 ɂ LATIN SMALL LETTER GLOTTAL STOP
0454           'B',   // 579 Ƀ LATIN CAPITAL LETTER B WITH STROKE
0455           'U',   // 580 Ʉ LATIN CAPITAL LETTER U BAR
0456           'V',   // 581 Ʌ LATIN CAPITAL LETTER TURNED V
0457           'E',   // 582 Ɇ LATIN CAPITAL LETTER E WITH STROKE
0458           'e',   // 583 ɇ LATIN SMALL LETTER E WITH STROKE
0459           'J',   // 584 Ɉ LATIN CAPITAL LETTER J WITH STROKE
0460           'j',   // 585 ɉ LATIN SMALL LETTER J WITH STROKE
0461           'Q',   // 586 Ɋ LATIN CAPITAL LETTER SMALL Q WITH HOOK TAIL
0462           'q',   // 587 ɋ LATIN SMALL LETTER Q WITH HOOK TAIL
0463           'R',   // 588 Ɍ LATIN CAPITAL LETTER R WITH STROKE
0464           'r',   // 589 ɍ LATIN SMALL LETTER R WITH STROKE
0465           'Y',   // 590 Ɏ LATIN CAPITAL LETTER Y WITH STROKE
0466           'y',   // 591 ɏ LATIN SMALL LETTER Y WITH STROKE
0467           'a',   // 592 ɐ LATIN SMALL LETTER TURNED A
0468           'a',   // 593 ɑ LATIN SMALL LETTER ALPHA
0469           'a',   // 594 ɒ LATIN SMALL LETTER TURNED ALPHA
0470           'b',   // 595 ɓ LATIN SMALL LETTER B WITH HOOK
0471           'o',   // 596 ɔ LATIN SMALL LETTER OPEN O
0472           'c',   // 597 ɕ LATIN SMALL LETTER C WITH CURL
0473           'd',   // 598 ɖ LATIN SMALL LETTER D WITH TAIL
0474           'd',   // 599 ɗ LATIN SMALL LETTER D WITH HOOK
0475           'e',   // 600 ɘ LATIN SMALL LETTER REVERSED E
0476           'e',   // 601 ə LATIN SMALL LETTER SCHWA
0477           'e',   // 602 ɚ LATIN SMALL LETTER SCHWA WITH HOOK
0478           'e',   // 603 ɛ LATIN SMALL LETTER OPEN E
0479           '3',   // 604 ɜ LATIN SMALL LETTER REVERSED OPEN E
0480           '3',   // 605 ɝ LATIN SMALL LETTER REVERSED OPEN E WITH HOOK
0481           'e',   // 606 ɞ LATIN SMALL LETTER CLOSED REVERSED OPEN E
0482           'j',   // 607 ɟ LATIN SMALL LETTER DOTLESS J WITH STROKE
0483           'g',   // 608 ɠ LATIN SMALL LETTER G WITH HOOK
0484           'g',   // 609 ɡ LATIN SMALL LETTER SCRIPT G
0485           'G',   // 610 ɢ LATIN LETTER SMALL CAPITAL G
0486           'y',   // 611 ɣ LATIN SMALL LETTER GAMMA
0487           'o',   // 612 ɤ LATIN SMALL LETTER RAMS HORN
0488           'u',   // 613 ɥ LATIN SMALL LETTER TURNED H
0489           'h',   // 614 ɦ LATIN SMALL LETTER H WITH HOOK
0490           'h',   // 615 ɧ LATIN SMALL LETTER HENG WITH HOOK
0491           'i',   // 616 ɨ LATIN SMALL LETTER I WITH STROKE
0492           'i',   // 617 ɩ LATIN SMALL LETTER IOTA
0493           'I',   // 618 ɪ LATIN LETTER SMALL CAPITAL I
0494           'l',   // 619 ɫ LATIN SMALL LETTER L WITH MIDDLE TILDE
0495           'l',   // 620 ɬ LATIN SMALL LETTER L WITH BELT
0496           'l',   // 621 ɭ LATIN SMALL LETTER L WITH RETROFLEX HOOK
0497           'lz',  // 622 ɮ LATIN SMALL LETTER LEZH
0498           'w',   // 623 ɯ LATIN SMALL LETTER TURNED M
0499           'w',   // 624 ɰ LATIN SMALL LETTER TURNED M WITH LONG LEG
0500           'm',   // 625 ɱ LATIN SMALL LETTER M WITH HOOK
0501           'n',   // 626 ɲ LATIN SMALL LETTER N WITH LEFT HOOK
0502           'n',   // 627 ɳ LATIN SMALL LETTER N WITH RETROFLEX HOOK
0503           'N',   // 628 ɴ LATIN LETTER SMALL CAPITAL N
0504           'o',   // 629 ɵ LATIN SMALL LETTER BARRED O
0505           'OE',  // 630 ɶ LATIN LETTER SMALL CAPITAL OE
0506           'w',   // 631 ɷ LATIN SMALL LETTER CLOSED OMEGA
0507           'o',   // 632 ɸ LATIN SMALL LETTER PHI
0508           'r',   // 633 ɹ LATIN SMALL LETTER TURNED R
0509           'r',   // 634 ɺ LATIN SMALL LETTER TURNED R WITH LONG LEG
0510           'r',   // 635 ɻ LATIN SMALL LETTER TURNED R WITH HOOK
0511           'r',   // 636 ɼ LATIN SMALL LETTER R WITH LONG LEG
0512           'r',   // 637 ɽ LATIN SMALL LETTER R WITH TAIL
0513           'r',   // 638 ɾ LATIN SMALL LETTER R WITH FISHHOOK
0514           'r',   // 639 ɿ LATIN SMALL LETTER REVERSED R WITH FISHHOOK
0515           'R',   // 640 ʀ LATIN LETTER SMALL CAPITAL R
0516           'R',   // 641 ʁ LATIN LETTER SMALL CAPITAL INVERTED R
0517           's',   // 642 ʂ LATIN SMALL LETTER S WITH HOOK
0518           'S',   // 643 ʃ LATIN SMALL LETTER ESH
0519           'f',   // 644 ʄ LATIN SMALL LETTER DOTLESS J WITH STROKE AND HOOK
0520           'S',   // 645 ʅ LATIN SMALL LETTER SQUAT REVERSED ESH
0521           'f',   // 646 ʆ LATIN SMALL LETTER ESH WITH CURL
0522           't',   // 647 ʇ LATIN SMALL LETTER TURNED T
0523           't',   // 648 ʈ LATIN SMALL LETTER T WITH RETROFLEX HOOK
0524           'u',   // 649 ʉ LATIN SMALL LETTER U BAR
0525           'u',   // 650 ʊ LATIN SMALL LETTER UPSILON
0526           'v',   // 651 ʋ LATIN SMALL LETTER V WITH HOOK
0527           'v',   // 652 ʌ LATIN SMALL LETTER TURNED V
0528           'm',   // 653 ʍ LATIN SMALL LETTER TURNED W
0529           'y',   // 654 ʎ LATIN SMALL LETTER TURNED Y
0530           'Y',   // 655 ʏ LATIN LETTER SMALL CAPITAL Y
0531           'z',   // 656 ʐ LATIN SMALL LETTER Z WITH RETROFLEX HOOK
0532           'z',   // 657 ʑ LATIN SMALL LETTER Z WITH CURL
0533           '3',   // 658 ʒ LATIN SMALL LETTER EZH
0534           '3',   // 659 ʓ LATIN SMALL LETTER EZH WITH CURL
0535           '?',   // 660 ʔ LATIN LETTER GLOTTAL STOP
0536           '?',   // 661 ʕ LATIN LETTER PHARYNGEAL VOICED FRICATIVE
0537           '?',   // 662 ʖ LATIN LETTER INVERTED GLOTTAL STOP
0538           'C',   // 663 ʗ LATIN LETTER STRETCHED C
0539           'O',   // 664 ʘ LATIN LETTER BILABIAL CLICK
0540           'B',   // 665 ʙ LATIN LETTER SMALL CAPITAL B
0541           'e',   // 666 ʚ LATIN SMALL LETTER CLOSED OPEN E
0542           'G',   // 667 ʛ LATIN LETTER SMALL CAPITAL G WITH HOOK
0543           'H',   // 668 ʜ LATIN LETTER SMALL CAPITAL H
0544           'j',   // 669 ʝ LATIN SMALL LETTER J WITH CROSSED-TAIL
0545           'k',   // 670 ʞ LATIN SMALL LETTER TURNED K
0546           'L',   // 671 ʟ LATIN LETTER SMALL CAPITAL L
0547           'q',   // 672 ʠ LATIN SMALL LETTER Q WITH HOOK
0548           't',   // 673 ʡ LATIN LETTER GLOTTAL STOP WITH STROKE
0549           't',   // 674 ʢ LATIN LETTER REVERSED GLOTTAL STOP WITH STROKE
0550           'dz',  // 675 ʣ LATIN SMALL LETTER DZ DIGRAPH
0551           'dz',  // 676 ʤ LATIN SMALL LETTER DEZH DIGRAPH
0552           'dz',  // 677 ʥ LATIN SMALL LETTER DZ DIGRAPH WITH CURL
0553           'ts',  // 678 ʦ LATIN SMALL LETTER TS DIGRAPH
0554           'tS',  // 679 ʧ LATIN SMALL LETTER TESH DIGRAPH
0555           'tc',  // 680 ʨ LATIN SMALL LETTER TC DIGRAPH WITH CURL
0556           'fn',  // 681 ʩ LATIN SMALL LETTER FENG DIGRAPH
0557           'ls',  // 682 ʪ LATIN SMALL LETTER LS DIGRAPH
0558           'lz',  // 683 ʫ LATIN SMALL LETTER LZ DIGRAPH
0559           'w',   // 684 ʬ LATIN LETTER BILABIAL PERCUSSIVE
0560           'n',   // 685 ʭ LATIN LETTER BIDENTAL PERCUSSIVE
0561           'u',   // 686 ʮ LATIN SMALL LETTER TURNED H WITH FISHHOOK
0562           'u'    // 687 ʯ LATIN SMALL LETTER TURNED H WITH FISHHOOK AND TAIL
0563     ]
0564 
0565     function toAscii(text) {
0566       var result = ''
0567       var start = 0
0568       for (var i = 0, len = text.length; i < len; ++i) {
0569         var code = text.charCodeAt(i)
0570         var replacement = null
0571         if (code > 159 + replacements.length) {
0572           replacement = '?'
0573         } else if (code > 159) {
0574           replacement = replacements[code - 160]
0575         } else if (code > 127) {
0576           replacement = ''
0577         }
0578         if (replacement !== null) {
0579           result += text.substring(start, i) + replacement
0580           start = i + 1
0581         }
0582       }
0583       result += text.substring(start)
0584       return result
0585     }
0586 
0587     function doWork() {
0588       if (app.selectionInfo.tag(Frame.Tag_1).tagFormat) {
0589         var frameNames = ["title", "artist", "album", "comment"]
0590         for (var fi = 0; fi < frameNames.length; ++fi) {
0591           var name = frameNames[fi];
0592           var oldTxt = app.getFrame(tagv1, name)
0593           var newTxt = toAscii(oldTxt)
0594           if (newTxt !== oldTxt) {
0595             app.setFrame(tagv1, name, newTxt)
0596           }
0597         }
0598       }
0599       if (!nextFile()) {
0600         if (isStandalone()) {
0601           // Save the changes if the script is started stand-alone, not from Kid3.
0602           app.saveDirectory()
0603         }
0604         Qt.quit()
0605       } else {
0606         setTimeout(doWork, 1)
0607       }
0608     }
0609 
0610     firstFile()
0611     doWork()
0612   }
0613 }