heh, didn’t even check your links, and wrote the whole function and conversion table myself… seems to work so far… if it help anyone, please feel free to use it or parts of it (can be altered to any other codepage i suppose)
local function convertCP1250toUTF8(inputString) local outputString = "" local cp1250table = { [1] = {byteval = 128, character = "€"}, [2] = {byteval = 129, character = " "}, [3] = {byteval = 130, character = "‚"}, [4] = {byteval = 131, character = " "}, [5] = {byteval = 132, character = "„"}, [6] = {byteval = 133, character = "…"}, [7] = {byteval = 134, character = "†"}, [8] = {byteval = 135, character = "‡"}, [9] = {byteval = 136, character = " "}, [10] = {byteval = 137, character = "‰"}, [11] = {byteval = 138, character = "Š"}, [12] = {byteval = 139, character = "‹"}, [13] = {byteval = 140, character = "Ś"}, [14] = {byteval = 141, character = "Ť"}, [15] = {byteval = 142, character = "Ž"}, [16] = {byteval = 143, character = "Ź"}, [17] = {byteval = 144, character = " "}, [18] = {byteval = 145, character = "‘"}, [19] = {byteval = 146, character = "’"}, [20] = {byteval = 147, character = "“"}, [21] = {byteval = 148, character = "”"}, [22] = {byteval = 149, character = "•"}, [23] = {byteval = 150, character = "–"}, [24] = {byteval = 151, character = "—"}, [25] = {byteval = 152, character = " "}, [26] = {byteval = 153, character = "™"}, [27] = {byteval = 154, character = "š"}, [28] = {byteval = 155, character = "›"}, [29] = {byteval = 156, character = "ś"}, [30] = {byteval = 157, character = "ť"}, [31] = {byteval = 158, character = "ž"}, [32] = {byteval = 159, character = "ź"}, [33] = {byteval = 160, character = " "}, [34] = {byteval = 161, character = "ˇ"}, [35] = {byteval = 162, character = "˘"}, [36] = {byteval = 163, character = "Ł"}, [37] = {byteval = 164, character = "¤"}, [38] = {byteval = 165, character = "Ą"}, [39] = {byteval = 166, character = "¦"}, [40] = {byteval = 167, character = "§"}, [41] = {byteval = 168, character = "¨"}, [42] = {byteval = 169, character = "©"}, [43] = {byteval = 170, character = "Ş"}, [44] = {byteval = 171, character = "«"}, [45] = {byteval = 172, character = "¬"}, [46] = {byteval = 173, character = "SHY"}, [47] = {byteval = 174, character = "®"}, [48] = {byteval = 175, character = "Ż"}, [49] = {byteval = 176, character = "°"}, [50] = {byteval = 177, character = "±"}, [51] = {byteval = 178, character = "˛"}, [52] = {byteval = 179, character = "ł"}, [53] = {byteval = 180, character = "´"}, [54] = {byteval = 181, character = "µ"}, [55] = {byteval = 182, character = "¶"}, [56] = {byteval = 183, character = "·"}, [57] = {byteval = 184, character = "¸"}, [58] = {byteval = 185, character = "ą"}, [59] = {byteval = 186, character = "ş"}, [60] = {byteval = 187, character = "»"}, [61] = {byteval = 188, character = "Ľ"}, [62] = {byteval = 189, character = "˝"}, [63] = {byteval = 190, character = "ľ"}, [64] = {byteval = 191, character = "ż"}, [65] = {byteval = 192, character = "Ŕ"}, [66] = {byteval = 193, character = "Á"}, [67] = {byteval = 194, character = "Â"}, [68] = {byteval = 195, character = "Ă"}, [69] = {byteval = 196, character = "Ä"}, [70] = {byteval = 197, character = "Ĺ"}, [71] = {byteval = 198, character = "Ć"}, [72] = {byteval = 199, character = "Ç"}, [73] = {byteval = 200, character = "Č"}, [74] = {byteval = 201, character = "É"}, [75] = {byteval = 202, character = "Ę"}, [76] = {byteval = 203, character = "Ë"}, [77] = {byteval = 204, character = "Ě"}, [78] = {byteval = 205, character = "Í"}, [79] = {byteval = 206, character = "Î"}, [80] = {byteval = 207, character = "Ď"}, [81] = {byteval = 208, character = "Đ"}, [82] = {byteval = 209, character = "Ń"}, [83] = {byteval = 210, character = "Ň"}, [84] = {byteval = 211, character = "Ó"}, [85] = {byteval = 212, character = "Ô"}, [86] = {byteval = 213, character = "Ő"}, [87] = {byteval = 214, character = "Ö"}, [88] = {byteval = 215, character = "×"}, [89] = {byteval = 216, character = "Ř"}, [90] = {byteval = 217, character = "Ů"}, [91] = {byteval = 218, character = "Ú"}, [92] = {byteval = 219, character = "Ű"}, [93] = {byteval = 220, character = "Ü"}, [94] = {byteval = 221, character = "Ý"}, [95] = {byteval = 222, character = "Ţ"}, [96] = {byteval = 223, character = "ß"}, [97] = {byteval = 224, character = "ŕ"}, [98] = {byteval = 225, character = "á"}, [99] = {byteval = 226, character = "â"}, [100] = {byteval = 227, character = "ă"}, [101] = {byteval = 228, character = "ä"}, [102] = {byteval = 229, character = "ĺ"}, [103] = {byteval = 230, character = "ć"}, [104] = {byteval = 231, character = "ç"}, [105] = {byteval = 232, character = "č"}, [106] = {byteval = 233, character = "é"}, [107] = {byteval = 234, character = "ę"}, [108] = {byteval = 235, character = "ë"}, [109] = {byteval = 236, character = "ě"}, [110] = {byteval = 237, character = "í"}, [111] = {byteval = 238, character = "î"}, [112] = {byteval = 239, character = "ď"}, [113] = {byteval = 240, character = "đ"}, [114] = {byteval = 241, character = "ń"}, [115] = {byteval = 242, character = "ň"}, [116] = {byteval = 243, character = "ó"}, [117] = {byteval = 244, character = "ô"}, [118] = {byteval = 245, character = "ő"}, [119] = {byteval = 246, character = "ö"}, [120] = {byteval = 247, character = "÷"}, [121] = {byteval = 248, character = "ř"}, [122] = {byteval = 249, character = "ů"}, [123] = {byteval = 250, character = "ú"}, [124] = {byteval = 251, character = "ű"}, [125] = {byteval = 252, character = "ü"}, [126] = {byteval = 253, character = "ý"}, [127] = {byteval = 254, character = "ţ"}, [128] = {byteval = 255, character = "˙"} } if inputString == nil then outputString = "ERROR - NULL INPUT STRING!" else local stringLength = string.len(inputString) for i=1,stringLength do local character = string.sub( inputString, i, i ) local byteValue = string.byte(character) if byteValue\>=128 and byteValue\<=255 then local replacedCharacter = "" --do the loop and find the corresponding in table for i=1,#cp1250table do if byteValue == cp1250table[i].byteval then replacedCharacter = cp1250table[i].character else --do nothing end end outputString = outputString .. replacedCharacter else outputString = outputString .. character end end end return outputString end