Тема: AHK: Сохранить unicode символы в ANSI версии AHK
У меня есть строка: "Ø230 × 25,4мм", ее я получаю с сайта, при сохранении в файл вместо "Ø" и "×" стоят вопросики, как можно не потерять данные символы?
Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
У меня есть строка: "Ø230 × 25,4мм", ее я получаю с сайта, при сохранении в файл вместо "Ø" и "×" стоят вопросики, как можно не потерять данные символы?
Конвертировать в другой кодировке и хранить так?
При сохранении используйте UTF-8 или UTF-16.
Да.. Но в какой? Я перепробовал разные функции и не одна из них не сохранило данные символы, а все русские вообще превратились в непонятные.
teadrinker, не помогает.
Помогает.
И что же делать, если не помогает?
Точнее, именно UTF-8, поскольку данные с сайта вероятнее всего в этой кодировке.
И что же делать, если не помогает?
Не знаю, я же ваш код не вижу.
Допустим данный код:
FileAppend, % "Ø230 × 25,4мм", % "test.xml", UTF-8
Сохраняет как:
?230 ? 25,4мм
Так ANSI версия не поддерживает строки в UTF-8 в виде текста. При получении с сайта не сохраняйте, как текст, а сохраняйте, как бинарные данные. Их же и сохраняйте в файл с помощью RawWrite(), только префикс UTF-8 не забудьте вставить.
Если я получаю JSON строку и мне нужно сделать манипуляции с этими данными и потом сохранить, как не потерять данные в таком случае?
Наверно никак. С текстом в кодировке UTF-8 в ANSI-версии AHK можно манипулировать только в бинарном виде.
Собственно, проблема даже не в UTF-8, а в том, что некоторые символы в этой кодировке имеют двухбайтный размер, чего ANSI-версия не поддерживает.
Наверно никак
Не, ну, конечно, если сильно заморочиться, можно что-то придумать, вопрос, какими усилиями. Например, отправить такую строку в виде hex в HTMLFILE объект, там преобразовать в строку, сделать необходимые манипуляции, и получить обратно в виде hex.
Решил пойти все же путем запуска скрипта в unicode версии.
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться