【已解决】奇怪的事情:一条注释,导致运行结果不同
本帖最后由 tryhi 于 2011-3-15 21:16 编辑代码一:
;阿
$high = StringToBinary("一")
MsgBox(0, 0, $high)
代码二:
$high = StringToBinary("一")
MsgBox(0, 0, $high)
其运行结果居然完全不同,代码一的结果是“0xD2BB”,代码二的结果是“0x3F”,不知原因何在。
版本为:3361汉化版,测试系统为XP-SP3
现在发现注释“哦”不会出现这个问题,并且不要用“一”好像也没有问题
我觉得应该就像15楼A版所说的那样吧 15# afan 代码一:
代码二:
其运行结果居然完全不同,不知原因何在
tryhi 发表于 2011-3-15 12:30 http://www.autoitx.com/images/common/back.gif
结果完全一样,哪里不同啊?
都是 “0xD2” 还有 “” 眼花了吧,那里不同了 回复 2# kn007
麻烦前辈再测试一下,我已将代码改为最简,我的测试结果已经测试环境在顶楼 回复 3# happytc
麻烦再测试一下,帖子已修改 一个是ANSI一个是UTF-8. 回复 6# republican
你测试也是这样是吧
那我们给它加上参数,强制转为UTF-8;阿
$high = StringToBinary("一",4)
MsgBox(0, 0, $high)但加注释与不加注释仍然结果不相同 回复 5# tryhi
因文件里有中文字符,这个函数自动转为$high = StringToBinary("一", 4)了。
默认ANSI本来是取不到中文“一”的Binary的,是这个函数的一个bug 回复tryhi
因文件里有中文字符,这个函数自动转为$high = StringToBinary("一", 4)了。
默认ANSI本来 ...
happytc 发表于 2011-3-15 12:56 http://www.autoitx.com/images/common/back.gif
现在发现注释“哦”不会出现这个问题,并且不要用“一”好像也没有问题 这个问题以前也发现过.
没作过深入,座等高人回答. 我测试了一下,还真有这个问题哦 测试了一下,还真有这个问题
测试结果同上。
之前我还发现:
$user=_IEGetObjById($oIE,"user")
$user.value="小学"
会出现乱码,但另外一些中文字符比如“大”,“家”就不会有乱码。
也等待高手解答 回复kn007
麻烦前辈再测试一下,我已将代码改为最简,我的测试结果已经测试环境在顶楼
tryhi 发表于 2011-3-15 12:41 http://www.autoitx.com/images/common/back.gif
看图吧,我这边没这问题 的确是很奇怪的问题,不过这肯定不是Au3的问题,而是Windows保存文件的问题。
这里测试的脚本,是在保存后才执行的结果,而在保存时,Windows会自动转码Ansi>UTF-8,且进行了错误的转换。这就造成了脚本执行时StringToBinary根本不是同一字符。
做个测试:
打开记事本,键入一个“一”,保存。此时并无异样,关闭文本重新打开一次,你会发现“一”变成了方块。
再做个测试:
打开记事本,键入一个“一二”,保存。关闭文本重新打开,一切正常。
页:
[1]
2