# -*- coding:utf-8 -*- ASCIItranslit = { \ 0x0022: "''", \ 0x002A: "_", \ 0x002F: "_", \ 0x003A: "_", \ 0x003C: "_", \ 0x003D: "_", \ 0x003E: "_", \ 0x003F: "_", \ 0x005C: "_", \ 0x007C: "_", \ 0x007F: "", \ 0x00A0: "_", \ 0x00A1: "!", \ 0x00A2: "c", \ 0x00A3: "lb", \ 0x00A4: "", \ 0x00A5: "yen", \ 0x00A6: "I", \ 0x00A7: "SS", \ 0x00A8: "'", \ 0x00A9: "(c)", \ 0x00AA: "a", \ 0x00AB: "<<", \ 0x00AC: "not", \ 0x00AD: "-", \ 0x00AE: "(R)", \ 0x00AF: "", \ 0x00B0: "^0", \ 0x00B1: "+-", \ 0x00B2: "^2", \ 0x00B3: "^3", \ 0x00B4: "'", \ 0x00B5: "u", \ 0x00B6: "P", \ 0x00B7: ".", \ 0x00B8: ",", \ 0x00B9: "^1", \ 0x00BA: "o", \ 0x00BB: ">>", \ 0x00BC: "1_4 ", \ 0x00BD: "1_2 ", \ 0x00BE: "3_4 ", \ 0x00BF: "_", \ 0x00C0: "`A", \ 0x00C1: "'A", \ 0x00C2: "^A", \ 0x00C3: "~A", \ 0x00C4: "Ae", \ 0x00C5: "A", \ 0x00C6: "AE", \ 0x00C7: "C", \ 0x00C8: "`E", \ 0x00C9: "'E", \ 0x00CA: "^E", \ 0x00CB: "E", \ 0x00CC: "`I", \ 0x00CD: "'I", \ 0x00CE: "^I", \ 0x00CF: "I", \ 0x00D0: "D", \ 0x00D1: "~N", \ 0x00D2: "`O", \ 0x00D3: "'O", \ 0x00D4: "^O", \ 0x00D5: "~O", \ 0x00D6: "Oe", \ 0x00D7: "x", \ 0x00D8: "O", \ 0x00D9: "`U", \ 0x00DA: "'U", \ 0x00DB: "^U", \ 0x00DC: "Ue", \ 0x00DD: "'Y", \ 0x00DE: "Th", \ 0x00DF: "ss", \ 0x00E0: "`a", \ 0x00E1: "'a", \ 0x00E2: "^a", \ 0x00E3: "~a", \ 0x00E4: "AE", \ 0x00E5: "a", \ 0x00E6: "ae", \ 0x00E7: "c", \ 0x00E8: "`e", \ 0x00E9: "'e", \ 0x00EA: "^e", \ 0x00EB: "e", \ 0x00EC: "`i", \ 0x00ED: "'i", \ 0x00EE: "^i", \ 0x00EF: "i", \ 0x00F0: "d", \ 0x00F1: "~n", \ 0x00F2: "`o", \ 0x00F3: "'o", \ 0x00F4: "^o", \ 0x00F5: "~o", \ 0x00F6: "oe", \ 0x00F7: "_", \ 0x00F8: "o", \ 0x00F9: "`u", \ 0x00FA: "'u", \ 0x00FB: "^u", \ 0x00FC: "ue", \ 0x00FD: "'y", \ 0x00FE: "th", \ 0x00FF: "Y", \ 0x0100: "A", \ 0x0101: "a", \ 0x0102: "A", \ 0x0103: "a", \ 0x0104: "A", \ 0x0105: "a", \ 0x0106: "'C", \ 0x0107: "'c", \ 0x0108: "^C", \ 0x0109: "^c", \ 0x010A: "C", \ 0x010B: "c", \ 0x010C: "C", \ 0x010D: "c", \ 0x010E: "D", \ 0x010F: "d", \ 0x0110: "D", \ 0x0111: "d", \ 0x0112: "E", \ 0x0113: "e", \ 0x0114: "E", \ 0x0115: "e", \ 0x0116: "E", \ 0x0117: "e", \ 0x0118: "E", \ 0x0119: "e", \ 0x011A: "E", \ 0x011B: "e", \ 0x011C: "^G", \ 0x011D: "^g", \ 0x011E: "G", \ 0x011F: "g", \ 0x0120: "G", \ 0x0121: "g", \ 0x0122: "G", \ 0x0123: "g", \ 0x0124: "^H", \ 0x0125: "^h", \ 0x0126: "H", \ 0x0127: "h", \ 0x0128: "~I", \ 0x0129: "~i", \ 0x012A: "I", \ 0x012B: "i", \ 0x012C: "I", \ 0x012D: "i", \ 0x012E: "I", \ 0x012F: "i", \ 0x0130: "I", \ 0x0131: "i", \ 0x0132: "IJ", \ 0x0133: "ij", \ 0x0134: "^J", \ 0x0135: "^j", \ 0x0136: "K", \ 0x0137: "k", \ 0x0138: "", \ 0x0139: "L", \ 0x013A: "l", \ 0x013B: "L", \ 0x013C: "l", \ 0x013D: "L", \ 0x013E: "l", \ 0x013F: "L", \ 0x0140: "l", \ 0x0141: "L", \ 0x0142: "l", \ 0x0143: "'N", \ 0x0144: "'n", \ 0x0145: "N", \ 0x0146: "n", \ 0x0147: "N", \ 0x0148: "n", \ 0x0149: "n", \ 0x014A: "_", \ 0x014B: "_", \ 0x014C: "O", \ 0x014D: "o", \ 0x014E: "O", \ 0x014F: "o", \ 0x0150: "''o", \ 0x0152: "OE", \ 0x0153: "oe", \ 0x0154: "'R", \ 0x0155: "'r", \ 0x0156: "R", \ 0x0157: "r", \ 0x0158: "R", \ 0x0159: "r", \ 0x015A: "'s", \ 0x015B: "'s", \ 0x015C: "^S", \ 0x015D: "^s", \ 0x015E: "S", \ 0x015F: "s", \ 0x0160: "S", \ 0x0161: "s", \ 0x0162: "T", \ 0x0163: "t", \ 0x0164: "T", \ 0x0165: "t", \ 0x0166: "T", \ 0x0167: "t", \ 0x0168: "~U", \ 0x0169: "~u", \ 0x016A: "U", \ 0x016B: "u", \ 0x016C: "U", \ 0x016D: "u", \ 0x016E: "U", \ 0x016F: "u", \ 0x0170: "''u", \ 0x0172: "U", \ 0x0173: "u", \ 0x0174: "^W", \ 0x0175: "^w", \ 0x0176: "^Y", \ 0x0177: "^y", \ 0x0178: "Y", \ 0x0179: "'Z", \ 0x017A: "'z", \ 0x017B: "Z", \ 0x017C: "z", \ 0x017D: "Z", \ 0x017E: "z", \ 0x017F: "s", \ 0x018F: "_", \ 0x0192: "f", \ 0x01C4: "DZ", \ 0x01C5: "DZ", \ 0x01C6: "DZ", \ 0x01C7: "LJ", \ 0x01C8: "Lj", \ 0x01C9: "lj", \ 0x01CA: "NJ", \ 0x01CB: "Nj", \ 0x01CC: "nj", \ 0x01F1: "DZ", \ 0x01F2: "Dz", \ 0x01F3: "dz", \ 0x0218: "S", \ 0x0219: "s", \ 0x021A: "T", \ 0x021B: "t", \ 0x0259: "_", \ 0x20AC: "EUR" } def legacyEncode(string): string2 = "" for z, char in enumerate(string.decode("utf-8")): i = ord(char) if i < 33: string2 += "_" elif i in ASCIItranslit: string2 += ASCIItranslit[i] else: try: string2 += char.encode('ascii', 'strict') except: string2 += "_" return string2.upper()