26.06.2019, 11:03 | #1 |
Участник
|
Открыть файл в UTF кодировке в ах3
Добрый день!
Вопрос от новичка. Как открыть файл *.cmt в ах3 в кодировке utf? AsciiIO русские буквы отображает иероглифами. Загружен класс Utf от AndyD, но с ним все равно иероглифы. Ниже часть кода, где обрабатывается файл: AsciiIO AscFile; ; for (x=1; x<=conlen(_con); x++) { fileName = conpeek(_con,x); AscFile = new AsciiIO (fileName,"r"); if (!AscFile) notFindDoc++; else { strFromFile = ""; while (AscFile.status() == IO_Status::Ok) { c = AscFile.read(); for (i=0;i<ConLen(c); i++) strFromFile = strFromFile + ConPeek(c,i+1); } strFromFile = Utf8::Ansi2Utf8(strFromFile); strFromFile = strRem(strFromFile," "); excel.insertValue("K1",strFromFile,1); //выводятся иероглифы |
|
26.06.2019, 11:45 | #2 |
Участник
|
Последний раз редактировалось Товарищ ♂uatr; 26.06.2019 в 11:48. |
|
26.06.2019, 12:20 | #3 |
Участник
|
В ах3 нет TextIO ((( этот класс присутствует в версиях начиная с 4й.
Пробовала еще через TextBuffer, но результат такой же: иероглифы Если открыть файл через WinAPI::shellExecute(filename); то файл открывается блокнотом в utf-8 и буквы отображаются корректно. Но мне нужно просто обработать имеющийся файл. По идее, вместо AscFile = new AsciiIO (fileName,"r"); должно быть AscFile = new TextIO (fileName,"r", 65001); но в ах3 нет такого класса. Как еще можно сказать аксапте открыть файл в utf-8 не знаю... Последний раз редактировалось Nasty2409; 26.06.2019 в 13:21. |
|
27.06.2019, 13:01 | #4 |
Участник
|
Вы не в ту сторону конвертируете. У Вас же содержимое файла в кодировке UTF, т.е. после прочтения, то, что прочитали надо конвертировать из UTF в ANSI
Т.е. как-то так надо X++: (...) info(strFromFile); //test strFromFile = Utf8::Utf2Ansi(strFromFile); // Прочитанный UTF конвертировать в ANSI info(strFromFile); //test strFromFile = strRem(strFromFile," "); excel.insertValue("K1",strFromFile,1);
__________________
- Может, я как-то неправильно живу?! - Отчего же? Правильно. Только зря... |
|
27.06.2019, 14:06 | #5 |
Участник
|
Заработало, спасибо!
|
|