ahk脚本接收到UTF-8编码的字符串参数时怎样处理?

遇到了问题?请先进行搜索(中文和英文),然后在此提问

Moderators: tmplinshi, arcticir

et2010
Posts: 18
Joined: 25 Jan 2017, 22:37

ahk脚本接收到UTF-8编码的字符串参数时怎样处理?

14 Feb 2017, 06:13

第一次提问,如有不符合规则还请指出。

运行ahk脚本时可以加参数,比如

Code: Select all

AutoHotKey.exe test.ahk argument
其中的argument如果是 UTF-8 编码的字符串,则以下脚本输出的 Tooltip 中将包含乱码,这个问题怎样解决?

test.ahk脚本内容如下:

Code: Select all

Tooltip, The value of argument 1 is %1%
Sleep, 5000
return
Last edited by et2010 on 14 Feb 2017, 09:01, edited 1 time in total.
et2010
Posts: 18
Joined: 25 Jan 2017, 22:37

Re: 运行ahk脚本时接收到中文字符参数是乱码?

14 Feb 2017, 06:35

抱歉,是我搞错了,上面的脚本是可以显示中文的。因为是用 ahk 脚本来接收其它程序发送来的数据,而发送来的数据已经是乱码了,所以导致我接收到的也是乱码。

简单来说,问题不是出在 AHK 这边。


问题已经改了,这里关键是参数是 UTF-8 编码的
Last edited by et2010 on 14 Feb 2017, 09:03, edited 1 time in total.
et2010
Posts: 18
Joined: 25 Jan 2017, 22:37

Re: 运行ahk脚本时接收到中文字符参数是乱码?

14 Feb 2017, 08:58

再次更正,是因为程序发出的是 UTF-8 编码的字符串,这个字符串作为参数直接传递给 ahk 脚本,然后出现乱码。那么问题变为,怎样使 ahk 脚本正确接收 UTF-8 编码的字符串参数?
tmplinshi
Posts: 1604
Joined: 01 Oct 2013, 14:57

Re: ahk脚本接收到UTF-8编码的字符串参数时怎样处理?

14 Feb 2017, 09:07

检查下脚本是否保存为了 UTF-8 (含BOM)
et2010
Posts: 18
Joined: 25 Jan 2017, 22:37

Re: ahk脚本接收到UTF-8编码的字符串参数时怎样处理?

14 Feb 2017, 10:02

脚本原来保存为 UTF-8,改为 UTF-8 with BOM 后结果一样,都是中文乱码
et2010
Posts: 18
Joined: 25 Jan 2017, 22:37

Re: ahk脚本接收到UTF-8编码的字符串参数时怎样处理?

14 Feb 2017, 10:09

检查下脚本是否保存为了 UTF-8 (含BOM)
这是字符串的编解码问题,与脚本的编码应该是没有关系的吧?

另外如果用 cmd 查看 argument 参数的话,可以用:

Code: Select all

 cmd /K echo {argument} >> output.txt
其中 {argument} 是外部程序输出的字串, 为 UTF-8 编码,而 output.txt 的编码也确实是 UTF-8。

这是不是说明 utf-8 编码的字符直接通过参数传递给 ahk 脚本是会导致乱码的。我的 AHK 版本为 1.1.24.02(64位)。
tmplinshi
Posts: 1604
Joined: 01 Oct 2013, 14:57

Re: ahk脚本接收到UTF-8编码的字符串参数时怎样处理?

14 Feb 2017, 11:44

et2010 wrote:
检查下脚本是否保存为了 UTF-8 (含BOM)
这是字符串的编解码问题,与脚本的编码应该是没有关系的吧?
我也不太确定。

最好是能说一下重现方法、提供测试程序。
et2010
Posts: 18
Joined: 25 Jan 2017, 22:37

Re: ahk脚本接收到UTF-8编码的字符串参数时怎样处理?

14 Feb 2017, 12:49

tmplinshi wrote: 我也不太确定。

最好是能说一下重现方法、提供测试程序。
详情见这里:

https://autohotkey.com/boards/viewtopic.php?f=5&t=28134

Return to “请求帮助”

Who is online

Users browsing this forum: No registered users and 26 guests