131738 发表于 2016-4-24 11:24:57

[已解决]3.3.14.2 版 FileGetEncoding 函数示例异常

本帖最后由 131738 于 2016-4-24 12:29 编辑

检测文件编码函数 FileGetEncoding() 示例脚本在英文版 Xp3 系统, 英文版 AutoIt 3.3.14.2 + SciTE 3.6.2 中运行正常:



但 英版环境 编译的 exe 运行异常:



先是在中文版中测试时发现这个问题, 到英版测试结果一样, 而在 3.3.12.0 中文版是正常的!

有谁能知道什么原因吗?

afan 发表于 2016-4-24 12:11:05

是对的,因为其测试的是 @ScriptFullPath,未编译时是文本格式,256很正常,编译后都是二进制的,所以就成了16了

131738 发表于 2016-4-24 12:19:40

是对的,因为其测试的是 @ScriptFullPath,未编译时是文本格式,256很正常,编译后都是二进制的,所以就成了 ...
afan 发表于 2016-4-24 12:11 http://www.autoitx.com/images/common/back.gif

我在研究一下, 实在不行在请教. 谢谢

131738 发表于 2016-4-24 12:28:59

回复 2# afan

明白了, 不能用 @ScriptFullPath 宏, 我再想其它办法..........

afan 发表于 2016-4-24 12:30:42

回复 3# 131738


    前辈说的 3.3.12.0 正常,如果也是测试的自身,编译后如果不是 16 反倒才是不正常的

131738 发表于 2016-4-24 13:38:36

本帖最后由 131738 于 2016-4-24 13:50 编辑

回复131738


    前辈说的 3.3.12.0 正常,如果也是测试的自身,编译后如果不是 16 反倒才是不正常的 ...
afan 发表于 2016-4-24 12:30 http://www.autoitx.com/images/common/back.gif$E = @ScriptFullPath
$W = BinaryToString($E)上面代码如果路径字符串有中文,而且路径太深, BinaryToString() 返回路径不完整, 参数标志 1 会丢失后面部分, 2,3 返回空, 4 同样会丢失后面部分, 而路径字符串有乱码.
这个什么原因呢........

知道了, 是否 BinaryToString() 不能转换包含中文的字符串

afan 发表于 2016-4-24 13:46:41

上面代码如果路径字符串有中文,而且路径太深, BinaryToString() 返回路径不完整, 参数标志 1 会丢失后面部分 ...
131738 发表于 2016-4-24 13:38 http://www.autoitx.com/images/common/back.gif


    BinaryToString? 反了吧

afan 发表于 2016-4-24 13:52:10

上面代码如果路径字符串有中文,而且路径太深, BinaryToString() 返回路径不完整, 参数标志 1 会丢失后面部分 ...
131738 发表于 2016-4-24 13:38 http://www.autoitx.com/images/common/back.gif


    应该先用 SToB,再BToS,而且,为了防止U码字符丢失,标志应为4$E = StringToBinary(@ScriptFullPath, 4)
$W = BinaryToString($E, 4)

131738 发表于 2016-4-24 13:52:32

BinaryToString? 反了吧
afan 发表于 2016-4-24 13:46 http://www.autoitx.com/images/common/back.gif

不明白, 再赐教.........
是否 BinaryToString() 不能转换包含中文的字符串

afan 发表于 2016-4-24 13:57:16

不明白, 再赐教.........
是否 BinaryToString() 不能转换包含中文的字符串
131738 发表于 2016-4-24 13:52 http://www.autoitx.com/images/common/back.gif


    8#说了~

131738 发表于 2016-4-24 13:57:49

应该先用 SToB,再BToS,而且,为了防止U码字符丢失,标志应为4
afan 发表于 2016-4-24 13:52 http://www.autoitx.com/images/common/back.gif

OK 好深的学问, 领教了, 谢谢........

afan 发表于 2016-4-24 14:00:14

回复 11# 131738


    前辈客气了~

131738 发表于 2016-4-24 14:26:06

回复 12# afan

最终这个方法不能用,编译后 @ScriptFullPath 返回的是 exe 文件名和路径,不是我需要测试的脚本文件, 我还得重想办法了.........

afan 发表于 2016-4-24 14:37:24

回复afan

最终这个方法不能用,编译后 @ScriptFullPath 返回的是 exe 文件名和路径,不是我需要测试的脚 ...
131738 发表于 2016-4-24 14:26 http://www.autoitx.com/images/common/back.gif


    不知道要测试什么

131738 发表于 2016-4-24 15:21:05

不知道要测试什么
afan 发表于 2016-4-24 14:37 http://www.autoitx.com/images/common/back.gif

解决了, 看了你的 Wrapper, 我也加个文件编码检查, 刚刚完成了!
页: [1] 2
查看完整版本: [已解决]3.3.14.2 版 FileGetEncoding 函数示例异常