Арабский текст, вставленный Autohotkey, шифруется в Notepad++
В разделе php обсуждалась похожая проблема. Моя проблема связана с NotePad++ или с компилятором AutoHotKey. Арабский текст внутри Notepad++ может быть напечатан, сохранен и загружен правильно. Когда я компилирую с AutoHotKey и отображаю строку, содержащую арабский язык, который я набрал с помощью listvars, он показывает беспорядочную комбинацию символов. Не просто вопросительные знаки, как в задаче, сформулированной в разделе php, а такие вещи, как:
ط§ظ "ظ... ط¤ظ"ظپ
ں Ee ¢ں
Иногда некоторые персонажи сохраняются, но слегка изменяются, иногда полностью портятся.
В NotePad++ я экспериментировал с некоторыми настройками арабской кодировки в настройках символов. Всего есть три параметра, каждый из которых содержит мой арабский текст в NotePad++:
- ISO 8859-6
- OEM 720
- ОКНА 1256
Наконец, я могу правильно читать по-арабски из буфера обмена, сохранять его в текстовый файл, читать его снова и правильно отображать.
1 ответ
Для того чтобы текст не-ASCII в файле скрипта был правильно интерпретирован AutoHotkey, должно выполняться одно из следующих условий:
Файл сохраняется как UTF-8 с спецификацией. В Notepad++ опция Encode в UTF-8.
Файл сохраняется как UTF-16 с спецификацией. В Notepad++ опция Encode in UCS-2 Little Endian работает до тех пор, пока файл не содержит дополнительных символов (от U+10000 до U+10FFFF).
Файл сохраняется с системной кодовой страницей ANSI по умолчанию. Это означает, что все содержащиеся в нем символы находятся внутри этой кодовой страницы. В Notepad++ опция Encode в ANSI. В Windows 7 кодовая страница задается с помощью параметра " Язык для программ, не поддерживающих Юникод" на панели " Регион и язык".
Файл не содержит спецификацию, но
/CPn
Ключ командной строки используется при запуске AutoHotkey.exe, где n - это идентификатор кодовой страницы, используемой для сохранения файла. См. Идентификаторы кодовой страницы в MSDN для списка.
UTF-8 рекомендуется.
Обратитесь к кодовой странице файла скрипта в документации AutoHotkey.