首页 > 解决方案 > AutoHotkey:将特殊字符写入文件

问题描述

我正在尝试将度数符号写入文件,但我只得到特殊字符问号符号。我试过用 UTF-8 编码打开文件,但它没有改变任何东西。有没有办法做到这一点?

这就是我正在尝试的:

#NoEnv
SetWorkingDir %A_ScriptDir%

zml := FileOpen("zml.xml", "rw", UTF-8)
zml.write("°")
zml.close()

标签: autohotkey

解决方案


来自文档:“如果支持 Unicode,则 Number 是 0 到 0x10FFFF(或 [v1.1.21] 之前的 0xFFFF)之间的 Unicode 字符代码;否则它是 0 到 255 之间的 ANSI 字符代码。”

zml.write(chr(176))作品。

176 是度数符号的 ASCII 码。

zml.write(chr(0x00B0))也有效。

0x00B0 是度数符号的 Unicode 编码

zml := FileOpen("zml.xml", "rw", UTF-8)
zml.write(chr(176))                      ; also works: zml.write(chr(0x00B0))
zml.close()

是否启用 Unicode 编码;可以检查:

MsgBox % A_IsUnicode ? "Unicode" : "ANSI"

在我的机器 Windows 代码页上:1252

ahk 版本:1.1.33.02

ahk 脚本文件保存为 UTF-8


推荐阅读