找回密码
 加入
搜索
查看: 10447|回复: 20

[系统综合] 【已解决】奇怪的事情:一条注释,导致运行结果不同

 火.. [复制链接]
发表于 2011-3-15 12:30:25 | 显示全部楼层 |阅读模式
本帖最后由 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
发表于 2011-3-15 12:36:37 | 显示全部楼层
代码一:



代码二:


其运行结果居然完全不同,不知原因何在
tryhi 发表于 2011-3-15 12:30

结果完全一样,哪里不同啊?
都是 “0xD2” 还有 “”

评分

参与人数 1金钱 +20 贡献 +5 收起 理由
tryhi + 20 + 5 多谢

查看全部评分

发表于 2011-3-15 12:37:25 | 显示全部楼层
眼花了吧,那里不同了

评分

参与人数 1金钱 +20 贡献 +5 收起 理由
tryhi + 20 + 5 我这边不同,感谢测试

查看全部评分

 楼主| 发表于 2011-3-15 12:41:36 | 显示全部楼层
回复 2# kn007

麻烦前辈再测试一下,我已将代码改为最简,我的测试结果已经测试环境在顶楼
 楼主| 发表于 2011-3-15 12:41:55 | 显示全部楼层
回复 3# happytc

麻烦再测试一下,帖子已修改
发表于 2011-3-15 12:49:34 | 显示全部楼层
一个是ANSI一个是UTF-8.

评分

参与人数 1金钱 +10 收起 理由
tryhi + 10

查看全部评分

 楼主| 发表于 2011-3-15 12:52:42 | 显示全部楼层
回复 6# republican

你测试也是这样是吧
那我们给它加上参数,强制转为UTF-8
;阿
$high = StringToBinary("一",4)
MsgBox(0, 0, $high)
但加注释与不加注释仍然结果不相同
发表于 2011-3-15 12:56:01 | 显示全部楼层
回复 5# tryhi

因文件里有中文字符,这个函数自动转为$high = StringToBinary("一", 4)了。
默认ANSI本来是取不到中文“一”的Binary的,是这个函数的一个bug
 楼主| 发表于 2011-3-15 12:59:00 | 显示全部楼层
回复  tryhi

因文件里有中文字符,这个函数自动转为$high = StringToBinary("一", 4)了。
默认ANSI本来 ...
happytc 发表于 2011-3-15 12:56


现在发现注释“哦”不会出现这个问题,并且不要用“一”好像也没有问题
发表于 2011-3-15 13:38:06 | 显示全部楼层
这个问题以前也发现过.
没作过深入,座等高人回答.

评分

参与人数 1金钱 +10 收起 理由
tryhi + 10 感谢关注

查看全部评分

发表于 2011-3-15 15:29:23 | 显示全部楼层
我测试了一下,还真有这个问题哦

评分

参与人数 1金钱 +10 收起 理由
tryhi + 10 感谢关注

查看全部评分

发表于 2011-3-15 16:36:43 | 显示全部楼层
测试了一下,还真有这个问题

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×

评分

参与人数 1金钱 +10 收起 理由
tryhi + 10 感谢关注

查看全部评分

发表于 2011-3-15 17:06:30 | 显示全部楼层
测试结果同上。
之前我还发现:
$user=_IEGetObjById($oIE,"user")
$user.value="小学"
会出现乱码,但另外一些中文字符比如“大”,“家”就不会有乱码。
也等待高手解答

评分

参与人数 1金钱 +10 贡献 +2 收起 理由
tryhi + 10 + 2 真的啊

查看全部评分

发表于 2011-3-15 17:16:22 | 显示全部楼层
回复  kn007

麻烦前辈再测试一下,我已将代码改为最简,我的测试结果已经测试环境在顶楼
tryhi 发表于 2011-3-15 12:41


看图吧,我这边没这问题

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×

评分

参与人数 1贡献 +2 收起 理由
tryhi + 2 奇怪

查看全部评分

发表于 2011-3-15 17:38:43 | 显示全部楼层
的确是很奇怪的问题,不过这肯定不是Au3的问题,而是Windows保存文件的问题。
这里测试的脚本,是在保存后才执行的结果,而在保存时,Windows会自动转码Ansi>UTF-8,且进行了错误的转换。这就造成了脚本执行时StringToBinary根本不是同一字符。

做个测试:
打开记事本,键入一个“一”,保存。此时并无异样,关闭文本重新打开一次,你会发现“一”变成了方块。
再做个测试:
打开记事本,键入一个“一二”,保存。关闭文本重新打开,一切正常。

评分

参与人数 1金钱 +20 贡献 +5 收起 理由
tryhi + 20 + 5 确实是这样哦

查看全部评分

您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-5-17 00:15 , Processed in 0.110889 second(s), 32 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表