fenhanxue 发表于 2018-5-20 22:29:03

关于字符串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.对于奇数个数的中文,这个代码没办法转回来,例如:“你”"你们好"   

afan 发表于 2018-5-20 22:34:49

StringToBinary
BinaryToString
编码要一致。

11、15行中的1改为4

fenhanxue 发表于 2018-5-20 22:45:56

本帖最后由 fenhanxue 于 2018-5-20 23:23 编辑

回复 2# afan


    谢谢afan版主,但是我遇到的实际情况,就是如代码所写的:


我已知的数据,是   原始数据(未知,是我想求的数据)经过StringToBinary参数1再BinaryToString参数4,得到的

这个已知的数据($kown),实际上是个乱码,我需要从这个乱码($kown)反推得到原始数据($test)


我能理解是utf8和ansi编码之间的不同导致的原因,但是这一块基础薄弱,搜索了一晚上了还是没任何头绪可以解决

fenhanxue 发表于 2018-5-20 22:58:36

写太长了可能文字又显得太繁琐了,我还是把应用的背景交代一下吧:

我有1个php文件,是UTF8编码的
另有一个C:\1.au3文件是asic编码的,这两个的编码格式都不允许改变(因为还涉及到其他很多方面,这里是为描述方便尽量简化了模型)。

然后,我的php文件里,会执行这样一段cmd代码:
“C:\1.au3 你”

也就是说,这个‘你’是作为参数传递给au3程序的
那么对于au3来说,实际上我想得到的结果应该是:
$CmdLine = ‘你’

但是由于编码的不同,au3里面,实际的$CmdLine = ‘浣?’
所以我需要将这个‘浣?’转回到 ‘你’


而我上面的代码

_a_to_b(‘你’) 的结果,正好就是‘浣?’

afan 发表于 2018-5-20 23:39:13

回复 3# fenhanxue


    如果 _a_to_b() 是这样不可改那应该就没戏了,做了减法,数据已部分丢失……

kk_lee69 发表于 2018-5-21 00:10:27

回复 4# fenhanxue

能不能透過TXT 傳遞??

lxwlxwayy 发表于 2018-5-21 08:23:23

好难懂呀{:face (396):}

fenhanxue 发表于 2018-5-21 11:10:03

回复 6# kk_lee69


    我现在临时的办法的确是通过txt来传递

1)php将utf8的‘你’ 写入txt,
2)au3再读取这个txt里的你

但是这样有会牵涉到php的多并发问题,想想就蛮头疼的

kk_lee69 发表于 2018-5-21 11:14:56

回复 8# fenhanxue

換個角度 PHP 的可以改嗎??不要用那個功能你知道 網址的 中文編碼轉換嗎??

如果用這個轉換 然後 AU3 也用這個接收再轉換 是不是可以解決問題

fenhanxue 发表于 2018-5-21 11:26:14

回复 9# kk_lee69


    urlencode

有道理,谢谢KK

fenhanxue 发表于 2018-5-21 21:06:41

话说KK 你这个帖子,最后有找到解决办法么?

http://www.autoit3.cn/forum.php?mod=viewthread&tid=50646&highlight=%C3%BB%D3%D0%2Bexcel

fenhanxue 发表于 2018-5-21 21:07:06

回复 9# kk_lee69


   
话说KK 你这个帖子,最后有找到解决办法么?

http://www.autoit3.cn/forum.php?mod=viewthread&tid=50646&highlight=%C3%BB%D3%D0%2Bexcel

kk_lee69 发表于 2018-5-21 21:25:51

回复 12# fenhanxue

解決啦

fenhanxue 发表于 2018-5-21 21:45:44

回复 13# kk_lee69


    有代码能参考下吗,我又被这个问题困扰住了

转xlsx到数组的

kk_lee69 发表于 2018-5-21 22:01:00

回复 14# fenhanxue

有安裝 EXCEL 嗎
页: [1] 2
查看完整版本: 关于字符串UTF8 和 asic 之间转换的问题【已解决】