本帖最后由 user11 于 2012-5-7 11:36 编辑
CODE代码中为网站返回的16进制验证码数据(UTF-8编码),理论上用_HexToString写入文件,就可以得到验证码图片,但是怎么试验都不成功,是不是跟编码有关,返回数据为UTF8编码,AU3处理的写入文件是ANSI,尝试转换也无法得到PNG图像,打开就提示图像编码错误,win7系统测试,用UE打开生成的PNG文件,查看PNG文件头之类 都是正确的 !
研究了一天了,,GOOGLE baidu 无数,发现其他程序如易语言都转换成功,AU3水平不到怎么试验都不成功,是不是UTF-8与 ANSI的关系,求大家帮助一下,非常感谢!
非常 感谢 afan 超版!!!!!解决方法看3楼!
估计这个难题解决了,非常开心,我发现 没有人用AU3写手机qq协议的挂机软件,鼓捣了一个,,可以登录了,识别好友,,现在验证码也要解决了。。
#include <String.au3>
$file = FileOpen(@DesktopDir & "YZM.png", 2+256);256 UTF8不成功,去掉用ANSI也不成功!!
If @error Then Exit
$HEXCODE="" ;就是下面的代码段,
$png = StringReplace(String($HEXCODE),@CRLF,"") ;;;替换一下回车换行,不必要好像。。
;$png = _UNICODE2ANSI($png);;;;尝试转换编码不成功,依然无法还原png
$png = _HexToString(StringUpper ( $png));;;大写试试,依旧不可以
FileWrite($file,$png)
89504e470d0a1a0a0000000d4948445200000064000000280403000000fa56427000000030504c5445ffffff0f0f0fafafaf7f7f7f6f6f6fefefef9f9f9f3f3f3f1f1f1f4f4f4fcfcfcfbfbfbf8f8f8f2f2f2f5f5f5fdfdfdf92d83e62000001fd49444154388ddd94bd4fdb4018c6cf290e6dd2567948c1b644d2481d800525234bda488c0c410c74a443c55a964a1d2a356b55558499212313829d81b0b125ff4133b0a2303220f5b90fdba97467c3da93ecbbbc797ff77ef8b913e2ff1d783aa191779b8dc4e4ef371f41b48030615a38cc274ec0b1a496e5ad3230ca25ca50a3cbe53a8203c05d5ffcd736f09b8e4d519868181507e1c59b4db02c8ac0973524c3c178c6ee0397421c24ee3db85333f6822aa3a5dc8fe91fe28d9331618a08f8ee608ce8f34bc60810784e469b0bd14066174db0274a18120959a7a31c1dc69ff2f58051479614bd20c2449d2d48a2ef20ea0ef1c1bfae6db2160ce417b0a716376d8e0e611f7f564dd3f6849b31d679edf935ee725323d6d44c9839843de57b3be634d6baccaea6589d962473289e2952eb32bb697cce598e302a30be560469d35e01554e9f24f2d6ba7d1c246e9aecda02a73b892c642033615eeb1323b54265e78639e5ea396ad2b02d917a16a2c2aca02175a9f656b5049908c354819fe21ef851e0ef31328e4b1a86e33b9f3675b9ab8f58d7ea98ae3cad131eac7a9b539feb331b92302c5f1161a3afe6d11038b2a693320c43bdd79ae2a322a7e758b45790321e2a958bab016523c57223bc5fb64afe61bc447ea58d6fef7913da8119c679cc9d8c977139da9994781c6a2ed3bc6bd5c23c099965dc4e7f016381567074fd735b0000000049454e44ae426082
|