找回密码
 加入
搜索
查看: 4782|回复: 19

[系统综合] 关于字符串UTF8 和 asic 之间转换的问题【已解决】

  [复制链接]
发表于 2018-5-20 22:29:03 | 显示全部楼层 |阅读模式
本帖最后由 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.对于奇数个数的中文,这个代码没办法转回来,例如:“你”  "你们好"   
发表于 2018-5-20 22:34:49 | 显示全部楼层
StringToBinary
BinaryToString
编码要一致。

11、15行中的1改为4
 楼主| 发表于 2018-5-20 22:45:56 | 显示全部楼层
本帖最后由 fenhanxue 于 2018-5-20 23:23 编辑

回复 2# afan


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


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

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


我能理解是utf8和ansi编码之间的不同导致的原因,但是这一块基础薄弱,搜索了一晚上了还是没任何头绪可以解决
 楼主| 发表于 2018-5-20 22:58:36 | 显示全部楼层
写太长了可能文字又显得太繁琐了,我还是把应用的背景交代一下吧:

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

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

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

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


而我上面的代码

_a_to_b(‘你’) 的结果,正好就是‘浣?’
发表于 2018-5-20 23:39:13 | 显示全部楼层
回复 3# fenhanxue


    如果 _a_to_b() 是这样不可改那应该就没戏了,做了减法,数据已部分丢失……
发表于 2018-5-21 00:10:27 | 显示全部楼层
回复 4# fenhanxue

能不能透過TXT 傳遞??
发表于 2018-5-21 08:23:23 | 显示全部楼层
好难懂呀
 楼主| 发表于 2018-5-21 11:10:03 | 显示全部楼层
回复 6# kk_lee69


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

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

但是这样有会牵涉到php的多并发问题,想想就蛮头疼的
发表于 2018-5-21 11:14:56 | 显示全部楼层
回复 8# fenhanxue

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

如果用這個轉換 然後 AU3 也用這個接收再轉換 是不是可以解決問題
 楼主| 发表于 2018-5-21 11:26:14 | 显示全部楼层
回复 9# kk_lee69


    urlencode

有道理,谢谢KK
 楼主| 发表于 2018-5-21 21:06:41 | 显示全部楼层
话说KK 你这个帖子,最后有找到解决办法么?

http://www.autoit3.cn/forum.php? ... C3%BB%D3%D0%2Bexcel
 楼主| 发表于 2018-5-21 21:07:06 | 显示全部楼层
回复 9# kk_lee69


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

http://www.autoit3.cn/forum.php? ... C3%BB%D3%D0%2Bexcel
发表于 2018-5-21 21:25:51 | 显示全部楼层
回复 12# fenhanxue

解決啦
 楼主| 发表于 2018-5-21 21:45:44 | 显示全部楼层
回复 13# kk_lee69


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

转xlsx到数组的
发表于 2018-5-21 22:01:00 | 显示全部楼层
回复 14# fenhanxue

有安裝 EXCEL 嗎
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-5-18 23:18 , Processed in 0.081103 second(s), 21 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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