Skip to content

Instantly share code, notes, and snippets.

@Bystroushaak
Created November 17, 2011 22:12
Show Gist options
  • Save Bystroushaak/1374716 to your computer and use it in GitHub Desktop.
Save Bystroushaak/1374716 to your computer and use it in GitHub Desktop.
/// Converts Windows-1250 to UTF. Thx http://latrine.dgx.cz/prevody-mezi-kodovanim
string win1250ShitToUTF(string i_s){
string o_s;
string[ubyte] table = [
0x80 : "\xe2\x82\xac",
0x81 : "",
0x82 : "\xe2\x80\x9a",
0x83 : "",
0x84 : "\xe2\x80\x9e",
0x85 : "\xe2\x80\xa6",
0x86 : "\xe2\x80\xa0",
0x87 : "\xe2\x80\xa1",
0x88 : "",
0x89 : "\xe2\x80\xb0",
0x8a : "\xc5\xa0",
0x8b : "\xe2\x80\xb9",
0x8c : "\xc5\x9a",
0x8d : "\xc5\xa4",
0x8e : "\xc5\xbd",
0x8f : "\xc5\xb9",
0x90 : "",
0x91 : "\xe2\x80\x98",
0x92 : "\xe2\x80\x99",
0x93 : "\xe2\x80\x9c",
0x94 : "\xe2\x80\x9d",
0x95 : "\xe2\x80\xa2",
0x96 : "\xe2\x80\x93",
0x97 : "\xe2\x80\x94",
0x98 : "",
0x99 : "\xe2\x84\xa2",
0x9a : "\xc5\xa1",
0x9b : "\xe2\x80\xba",
0x9c : "\xc5\x9b",
0x9d : "\xc5\xa5",
0x9e : "\xc5\xbe",
0x9f : "\xc5\xba",
0xa0 : "\xc2\xa0",
0xa1 : "\xcb\x87",
0xa2 : "\xcb\x98",
0xa3 : "\xc5\x81",
0xa4 : "\xc2\xa4",
0xa5 : "\xc4\x84",
0xa6 : "\xc2\xa6",
0xa7 : "\xc2\xa7",
0xa8 : "\xc2\xa8",
0xa9 : "\xc2\xa9",
0xaa : "\xc5\x9e",
0xab : "\xc2\xab",
0xac : "\xc2\xac",
0xad : "\xc2\xad",
0xae : "\xc2\xae",
0xaf : "\xc5\xbb",
0xb0 : "\xc2\xb0",
0xb1 : "\xc2\xb1",
0xb2 : "\xcb\x9b",
0xb3 : "\xc5\x82",
0xb4 : "\xc2\xb4",
0xb5 : "\xc2\xb5",
0xb6 : "\xc2\xb6",
0xb7 : "\xc2\xb7",
0xb8 : "\xc2\xb8",
0xb9 : "\xc4\x85",
0xba : "\xc5\x9f",
0xbb : "\xc2\xbb",
0xbc : "\xc4\xbd",
0xbd : "\xcb\x9d",
0xbe : "\xc4\xbe",
0xbf : "\xc5\xbc",
0xc0 : "\xc5\x94",
0xc1 : "\xc3\x81",
0xc2 : "\xc3\x82",
0xc3 : "\xc4\x82",
0xc4 : "\xc3\x84",
0xc5 : "\xc4\xb9",
0xc6 : "\xc4\x86",
0xc7 : "\xc3\x87",
0xc8 : "\xc4\x8c",
0xc9 : "\xc3\x89",
0xca : "\xc4\x98",
0xcb : "\xc3\x8b",
0xcc : "\xc4\x9a",
0xcd : "\xc3\x8d",
0xce : "\xc3\x8e",
0xcf : "\xc4\x8e",
0xd0 : "\xc4\x90",
0xd1 : "\xc5\x83",
0xd2 : "\xc5\x87",
0xd3 : "\xc3\x93",
0xd4 : "\xc3\x94",
0xd5 : "\xc5\x90",
0xd6 : "\xc3\x96",
0xd7 : "\xc3\x97",
0xd8 : "\xc5\x98",
0xd9 : "\xc5\xae",
0xda : "\xc3\x9a",
0xdb : "\xc5\xb0",
0xdc : "\xc3\x9c",
0xdd : "\xc3\x9d",
0xde : "\xc5\xa2",
0xdf : "\xc3\x9f",
0xe0 : "\xc5\x95",
0xe1 : "\xc3\xa1",
0xe2 : "\xc3\xa2",
0xe3 : "\xc4\x83",
0xe4 : "\xc3\xa4",
0xe5 : "\xc4\xba",
0xe6 : "\xc4\x87",
0xe7 : "\xc3\xa7",
0xe8 : "\xc4\x8d",
0xe9 : "\xc3\xa9",
0xea : "\xc4\x99",
0xeb : "\xc3\xab",
0xec : "\xc4\x9b",
0xed : "\xc3\xad",
0xee : "\xc3\xae",
0xef : "\xc4\x8f",
0xf0 : "\xc4\x91",
0xf1 : "\xc5\x84",
0xf2 : "\xc5\x88",
0xf3 : "\xc3\xb3",
0xf4 : "\xc3\xb4",
0xf5 : "\xc5\x91",
0xf6 : "\xc3\xb6",
0xf7 : "\xc3\xb7",
0xf8 : "\xc5\x99",
0xf9 : "\xc5\xaf",
0xfa : "\xc3\xba",
0xfb : "\xc5\xb1",
0xfc : "\xc3\xbc",
0xfd : "\xc3\xbd",
0xfe : "\xc5\xa3",
0xff : "\xcb\x99"
];
foreach(ubyte c; i_s){
if (c in table)
o_s ~= table[c];
else
o_s ~= cast(char) c;
}
return o_s;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment