2

在 php 部分讨论了一个类似的问题。我的问题与 NotePad++ 或 AutoHotKey 编译器有关。Notepad++ 中的阿拉伯语文本可以正确输入、保存和加载。当我用 AutoHotKey 编译并显示包含我用 listvars 键入的阿拉伯语的字符串时,它显示了一堆乱七八糟的字符。不仅仅是在 php 部分制定的问题中的问号,而是类似:
ط§ظ„ظ...ط¤ظ„ظپ<br /> ںéè¢ں

有时,一些字符被保留,但略有改变,有时它完全混乱。

在 NotePad++ 中,我在字符设置下尝试了一些阿拉伯语编码设置。总共有三个设置,所有这些都扰乱了我在 NotePad++ 中的阿拉伯语写作这些是:

  1. ISO 8859-6
  2. OEM 720
  3. 视窗 1256

最后,我可以从剪贴板正确读取阿拉伯语,将其保存为 txt 文件,再次读取并正确显示。

4

1 回答 1

1

要让 AutoHotkey 正确解释脚本文件中的非 ASCII 文本,必须满足以下条件之一:

  1. 该文件保存为带有 BOM 的 UTF-8。在 Notepad++ 中,选项是Encode in UTF-8

  2. 该文件保存为带有 BOM 的 UTF-16。在 Notepad++ 中,只要文件不包含补充字符(U+10000 到 U+10FFFF) ,在 UCS-2 Little Endian 中编码选项就可以工作。

  3. 该文件与系统默认的 ANSI 代码页一起保存。这意味着它包含的字符都在该代码页中。在 Notepad++ 中,选项是Encode in ANSI。在 Windows 7 中,代码页由区域和语言控制面板中的非 Unicode 程序语言选项设置。

  4. 该文件不包含 BOM,但/CPn在运行 AutoHotkey.exe 时使用命令行开关,其中 n 是用于保存文件的代码页的标识符。有关列表,请参阅MSDN 上的代码页标识符

推荐使用 UTF-8。

请参阅AutoHotkey 文档中的脚本文件代码页。

于 2013-08-18T00:42:01.283 回答