找回密码
 加入
搜索
查看: 2247|回复: 9

[系统综合] 编码不同的字符不能直接相连显示【已解决】

  [复制链接]
发表于 2017-3-25 10:35:14 | 显示全部楼层 |阅读模式
本帖最后由 haijie1223 于 2017-3-25 13:40 编辑

_ArrayDisplay的bug见过不止一次,真是蛋疼。。。
#NoTrayIcon
#RequireAdmin
#include <Array.au3>
Local $array = [['4500', '']]
_ArrayDisplay($array, $array[0][1])
$array[0][0] = BinaryToString('0x' & $array[0][0])
$array[0][1] = 'test'
_ArrayDisplay($array, $array[0][1])
发表于 2017-3-25 10:36:44 | 显示全部楼层
前排留名。
发表于 2017-3-25 12:26:55 | 显示全部楼层
_ArrayDisplay表示这锅我不背……
#NoTrayIcon
#RequireAdmin
#include <Array.au3>
Local $Array = [["4500", ""]]
_ArrayDisplay($Array)
Local $Binary = Binary("0x" & $Array[0][0])
ConsoleWrite(AscW("E") & @TAB & IsBinary($Binary) & @CRLF)
$Array[0][0] = String(BinaryToString($Binary))
;~ $Array[0][0] = ChrW($Binary)
$Array[0][1] = String("Test")
ConsoleWrite($Array[0][0] & @CRLF & $Array[0][1] & @CRLF)
MsgBox(0, $Array[0][0], $Array[0][1])
_ArrayDisplay($Array)

ConsoleWrite也是打印不出来的,MsgBox才可以……
0x4500那是哪门子二进制……
 楼主| 发表于 2017-3-25 12:32:25 | 显示全部楼层
回复 3# 帆船


    打印当然可以,打印也不可以的话,那是autoit的bug了。arraydisplay显示不出,是这个udf写的有问题。
发表于 2017-3-25 12:35:23 | 显示全部楼层
回复 4# haijie1223


    修复一下哇,最近用的多。
发表于 2017-3-25 13:21:29 | 显示全部楼层
回复 4# haijie1223
哦,不对,我刚才说错了,MsgBox也是不能连在一起显示的!如图:

#NoTrayIcon
#RequireAdmin
#include <Array.au3>
Local $Array = [["4500", ""]]
_ArrayDisplay($Array)
Local $Binary = Binary("0x" & $Array[0][0])
ConsoleWrite(AscW("E") & @TAB & IsBinary($Binary) & @CRLF)
$Array[0][0] = String(BinaryToString($Binary))
;~ $Array[0][0] = ChrW($Binary)
$Array[0][1] = String("Test")
ConsoleWrite($Array[0][0] & @CRLF & $Array[0][1] & @CRLF)
MsgBox(0, $Array[0][0] & $Array[0][1], $Array[0][0] & $Array[0][1])
_ArrayDisplay($Array)

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×

评分

参与人数 1金钱 +30 收起 理由
haijie1223 + 30 感谢测试!

查看全部评分

 楼主| 发表于 2017-3-25 13:38:44 | 显示全部楼层
回复 6# 帆船


    似乎明白了原因,编码不同,造成的不能显示。
0x4500是小编码,'test'是ansi编码,所以不能直接相连显示。
因此应该用 BinaryToString('0x' & $array[0][0],2)。
或者:
Local $array = [['0x45', '']]
$array[0][0]=BinaryToString($array[0][0])
==========================
同理,如果0x0045,那么就是大编码,应该用BinaryToString('0x' & $array[0][0],3)
不是bug,是我自己知识面太窄,一时没有注意到这个问题。
感谢帮忙测试。
发表于 2017-3-25 13:46:08 | 显示全部楼层
回复 7# haijie1223
啊,还真是这么回事……本来不清楚大编码小编码编码是怎么回事的,学习了
发表于 2017-3-31 08:53:43 | 显示全部楼层
ansi不被支持是什么鬼?
发表于 2017-3-31 12:07:23 | 显示全部楼层
学习学习。
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-12-25 00:32 , Processed in 0.078744 second(s), 26 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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