# -*- 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()
