lcUtf8 = filetostr( 'russian_utf8.txt' ) * lcRussian = strconv( lcUtf8, 9, 1251, 1 ) <- this is wrong lcRussian = strconv( lcUtf8, 11, 1251, 1 ) &&Works OK for me strtofile( lcRussian, 'russian.txt' ) modify file russian.txt as 1251 &&I see normal russian text lcUnicode = filetostr( 'russian_unicode.txt' ) * lcRussian = strconv( lcUtf8, 6, 1251, 1 ) <- why lcUtf8 ??? *** Hey, man! Use CORRECT variable!!! lcRussian = strconv( lcUnicode, 6, 1251, 1 ) strtofile( lcRussian, 'russian.txt' ) modify file russian.txt as 1251 &&I see normal russian text againSomething you can also add is to remove first 2 bytes from UTF-8 and Unicode texts. AFAIK they are some kind of header, not a character. So, the first character in lcRussian is stupid question mark in both cases.