itljl 发表于 2008-12-19 23:00:45

一个关于字符串的讨论

1.新版去掉了ansi支持,为什么还要保留 BinaryToString(转换一个二进制变量为ANSI字符串) 这个函数?为什么这个二进位转字符串函数不是转成UTF8编码的字符串?
2.$buffer = StringToBinary("Hello - 你好", 4)
MsgBox(4096, "字符串到二进制" , $buffer)
$buffer = BinaryToString($buffer, 4)
MsgBox(4096, "二进制到字符串" , $buffer)

以上代码可以将字符串转成二进制,也可以将二进制转回为字符串,二进制在TCP转输的时候,是否不会出现UTF8版本直接传输中文那样引起的丢失?为什么会这样?

3.为什么MsgBox(4096, "字符串到二进制" , $buffer)这个转出来的不是0101这样的二进位,而是16进制的显示?0x?

itljl 发表于 2008-12-19 23:00:53

谢谢能解惑的朋友。

pcbar 发表于 2008-12-20 10:20:35

1,帮助的原文为Converts a binary variant into a string.( 转换二进制数据为一个特定的字符串)
使用格式:BinaryToString ( expression [, flag] ),这里的flag可以为
Changes how the binary data is converted:
flag = 1 (default), binary data is taken to be ANSI
flag = 2, binary data is taken to be UTF16 Little Endian
flag = 3, binary data is taken to be UTF16 Big Endian
flag = 4, binary data is taken to be UTF8

robin.von 发表于 2008-12-20 13:56:27

其实这个函数用来做本地语言转换比较有用的,可以用来处理各种不同的国家文字。

akmm88 发表于 2008-12-20 18:40:19

应该说,只要是在中文的操作系统上,使用UTF-8传输是不会有你说的问题的。反而ANSI会出现更多的问题。

itljl 发表于 2008-12-21 17:59:37

原帖由 akmm88 于 2008-12-20 18:40 发表 http://www.autoitx.com/images/common/back.gif
应该说,只要是在中文的操作系统上,使用UTF-8传输是不会有你说的问题的。反而ANSI会出现更多的问题。
请偿试一下,TCP,或者UDP发送中文,偿试一下listview排序,阁下就会发现和你所说,刚好相反啊。
页: [1]
查看完整版本: 一个关于字符串的讨论