关于字符串UTF8 和 asic 之间转换的问题【已解决】
本帖最后由 fenhanxue 于 2018-5-24 21:47 编辑下面的代码,涉及到了两个变量:
$test $kown
我的问题是,
已知$kown
并且,已知$kown 与$test 的关系为:
$kown = _a_to_b($test)
那么应该如何得到$test$test = '你';你好,可以成功返回 你 不能成功返回,
$kown = _a_to_b($test)
MsgBox(0,$test, _b_back_to_a($kown) )
Func _a_to_b($a);
Local $temp = StringToBinary($a,4)
Return BinaryToString($temp,1)
EndFunc
Func _b_back_to_a($b)
Local $temp = StringToBinary($b,1)
Return BinaryToString($temp,4)
EndFunc我用代码 _b_back_to_a($b)但这段代码并不总是能奏效:
1.对于非中文字符串,这个代码有用
2.对于偶数个数的中文,这个代码有用,例如“你好” “你们好啊”个数是偶数个的有效
3.对于奇数个数的中文,这个代码没办法转回来,例如:“你”"你们好" StringToBinary
BinaryToString
编码要一致。
11、15行中的1改为4 本帖最后由 fenhanxue 于 2018-5-20 23:23 编辑
回复 2# afan
谢谢afan版主,但是我遇到的实际情况,就是如代码所写的:
我已知的数据,是 原始数据(未知,是我想求的数据)经过StringToBinary参数1再BinaryToString参数4,得到的
这个已知的数据($kown),实际上是个乱码,我需要从这个乱码($kown)反推得到原始数据($test)
我能理解是utf8和ansi编码之间的不同导致的原因,但是这一块基础薄弱,搜索了一晚上了还是没任何头绪可以解决 写太长了可能文字又显得太繁琐了,我还是把应用的背景交代一下吧:
我有1个php文件,是UTF8编码的
另有一个C:\1.au3文件是asic编码的,这两个的编码格式都不允许改变(因为还涉及到其他很多方面,这里是为描述方便尽量简化了模型)。
然后,我的php文件里,会执行这样一段cmd代码:
“C:\1.au3 你”
也就是说,这个‘你’是作为参数传递给au3程序的
那么对于au3来说,实际上我想得到的结果应该是:
$CmdLine = ‘你’
但是由于编码的不同,au3里面,实际的$CmdLine = ‘浣?’
所以我需要将这个‘浣?’转回到 ‘你’
而我上面的代码
_a_to_b(‘你’) 的结果,正好就是‘浣?’ 回复 3# fenhanxue
如果 _a_to_b() 是这样不可改那应该就没戏了,做了减法,数据已部分丢失…… 回复 4# fenhanxue
能不能透過TXT 傳遞?? 好难懂呀{:face (396):} 回复 6# kk_lee69
我现在临时的办法的确是通过txt来传递
1)php将utf8的‘你’ 写入txt,
2)au3再读取这个txt里的你
但是这样有会牵涉到php的多并发问题,想想就蛮头疼的 回复 8# fenhanxue
換個角度 PHP 的可以改嗎??不要用那個功能你知道 網址的 中文編碼轉換嗎??
如果用這個轉換 然後 AU3 也用這個接收再轉換 是不是可以解決問題 回复 9# kk_lee69
urlencode
有道理,谢谢KK 话说KK 你这个帖子,最后有找到解决办法么?
http://www.autoit3.cn/forum.php?mod=viewthread&tid=50646&highlight=%C3%BB%D3%D0%2Bexcel 回复 9# kk_lee69
话说KK 你这个帖子,最后有找到解决办法么?
http://www.autoit3.cn/forum.php?mod=viewthread&tid=50646&highlight=%C3%BB%D3%D0%2Bexcel 回复 12# fenhanxue
解決啦 回复 13# kk_lee69
有代码能参考下吗,我又被这个问题困扰住了
转xlsx到数组的 回复 14# fenhanxue
有安裝 EXCEL 嗎
页:
[1]
2