找回密码
 加入
搜索
查看: 2117|回复: 5

一个关于字符串的讨论

[复制链接]
发表于 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?
 楼主| 发表于 2008-12-19 23:00:53 | 显示全部楼层
谢谢能解惑的朋友。
发表于 2008-12-20 10:20:35 | 显示全部楼层
1,帮助的原文为Converts a binary variant into a string.( 转换二进制数据为一个特定的字符串)
使用格式:BinaryToString ( expression [, flag] ),这里的flag可以为
[optional] 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
发表于 2008-12-20 13:56:27 | 显示全部楼层
其实这个函数用来做本地语言转换比较有用的,可以用来处理各种不同的国家文字。
发表于 2008-12-20 18:40:19 | 显示全部楼层
应该说,只要是在中文的操作系统上,使用UTF-8传输是不会有你说的问题的。反而ANSI会出现更多的问题。
 楼主| 发表于 2008-12-21 17:59:37 | 显示全部楼层
原帖由 akmm88 于 2008-12-20 18:40 发表
应该说,只要是在中文的操作系统上,使用UTF-8传输是不会有你说的问题的。反而ANSI会出现更多的问题。

请偿试一下,TCP,或者UDP发送中文,偿试一下listview排序,阁下就会发现和你所说,刚好相反啊。
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-12-23 12:05 , Processed in 0.072908 second(s), 21 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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