atitit.无损传输二进制数据串传输网络
2015-07-23 15:08
567 查看
atitit.无损传输二进制数据串传输网络
1. gbk的网络传输问题,为什么gbk不能使用来传输二进制数据
1
2. base64 2
3. iso-8859-1 (推荐) 2
4. utf-8 (不能使用) 2
因为有些字符在gbk字符集中找不到相应的字符。所以默认使用编码63取代,也就是?(问号)。
。。gbk只能兼容低位asc编码(英文字母),高位编码要使用来编码汉字了...
作者::老哇的爪子Attilax艾龙,EMAIL:1466519819@qq.com
转载请注明来源: http://blog.csdn.net/attilax
s="我ab哈";
gbked [-50, -46, 97, 98, -71, -2]
winhex CED26162B9FE ,, ce(206),d2(210)
zip [120, -100, 59, 119, 41, 49, 105, -25, 63, 0, 14, 14, 4, 27]
》》》gbk str
zipstr>>byteArr [120, 63, 119, 41, 49, 105, 63, 0, 14, 14, 4, 27]
gbk整体编码范围为8140-FEFE,首字节在81-FE 之间,尾字节在40-FE 之间。gbk 81(129),40(64)------fe(254)
iso-8859-1是JAVA网络传输使用的标准字符集
。当我们要把一个“字节串”转化成“字符串”,而又不知道它是哪一种 ANSI 编码时。先临时地把“每个字节”作为“一个字符”进行转化。不会造成信息丢失。
iso8859能够完美的转换0-256区间的字符。。。
不会丢失。。
ISO-8859-1 字符集的编码范围是 0000-00FF,正好和一个字节的编码范围相相应。这样的特性保证了使用 ISO-8859-1 进行编码和解码能够保持编码数值“不变”。
这样的特性保证了使用 ISO-8859-1 进行编码和解码能够保持编码数值“不变”
utf8 bytes [-26, -120, -111, 97, 98, -27, -109, -120]
kmprs bytes [120, -100, 123, -42, 49, 49, 49, -23, -23, -28, 14, 0, 22, 32, 4, -61]
>>>>utf8 str
utf8str2bytes(len27) [120, -17, -65, -67, 123, -17, -65, -67, 49, 49, 49, -17, -65, -67, -17, -65, -67, -17, -65, -67, 14, 0, 22, 32, 4, -17, -65, -67]
1. gbk的网络传输问题,为什么gbk不能使用来传输二进制数据
1
2. base64 2
3. iso-8859-1 (推荐) 2
4. utf-8 (不能使用) 2
1. gbk的网络传输问题,为什么gbk不能使用来传输二进制数据
gbk会造成信息丢失因为有些字符在gbk字符集中找不到相应的字符。所以默认使用编码63取代,也就是?(问号)。
。。gbk只能兼容低位asc编码(英文字母),高位编码要使用来编码汉字了...
作者::老哇的爪子Attilax艾龙,EMAIL:1466519819@qq.com
转载请注明来源: http://blog.csdn.net/attilax
s="我ab哈";
gbked [-50, -46, 97, 98, -71, -2]
winhex CED26162B9FE ,, ce(206),d2(210)
zip [120, -100, 59, 119, 41, 49, 105, -25, 63, 0, 14, 14, 4, 27]
》》》gbk str
zipstr>>byteArr [120, 63, 119, 41, 49, 105, 63, 0, 14, 14, 4, 27]
gbk整体编码范围为8140-FEFE,首字节在81-FE 之间,尾字节在40-FE 之间。gbk 81(129),40(64)------fe(254)
2. base64
base64最大的问题是大小新增30%...3. iso-8859-1 (推荐)
iso-8859-1 是非常好的解决...,使用它进行转码一般也没有问题。iso-8859-1是JAVA网络传输使用的标准字符集
。当我们要把一个“字节串”转化成“字符串”,而又不知道它是哪一种 ANSI 编码时。先临时地把“每个字节”作为“一个字符”进行转化。不会造成信息丢失。
iso8859能够完美的转换0-256区间的字符。。。
不会丢失。。
ISO-8859-1 字符集的编码范围是 0000-00FF,正好和一个字节的编码范围相相应。这样的特性保证了使用 ISO-8859-1 进行编码和解码能够保持编码数值“不变”。
这样的特性保证了使用 ISO-8859-1 进行编码和解码能够保持编码数值“不变”
4. utf-8 (不能使用)
s="我ab哈";utf8 bytes [-26, -120, -111, 97, 98, -27, -109, -120]
kmprs bytes [120, -100, 123, -42, 49, 49, 49, -23, -23, -28, 14, 0, 22, 32, 4, -61]
>>>>utf8 str
utf8str2bytes(len27) [120, -17, -65, -67, 123, -17, -65, -67, 49, 49, 49, -17, -65, -67, -17, -65, -67, -17, -65, -67, 14, 0, 22, 32, 4, -17, -65, -67]
5. 參考:
字符编码笔记:ASCII。Unicode和UTF-8 - 阮一峰的网络日志.htm相关文章推荐
- HttpClient的超时用法小记
- 三层交换机3com 5500G-EI 网络广播风暴一事
- TCP和UDP协议有什么不同?
- hadoop distcp拷贝数据问题
- linux网络设置命令
- Modbus TCP和Modbus Rtu协议的区别
- Cisco网络设备配置入门必读的几个命令
- TCP_NODELAY 和 TCP_CORK主要区别
- (转自Mars) Android - 文件下载类 HttpDownloader,内存卡操作类 FileUtils
- 操作系统、数据库和网络03(mySQL变量类型)
- TCPdump抓包命令详解
- 编译安装httpd,php,mysql搭建LAMP
- 网络中断、丢包现象的分析归纳
- HTTP状态码详解
- iOS开发中HTTP 常用 Header 讲解
- ASIHTTPRequest
- 操作系统、数据库和网络02(mySQL基本操作)
- Android网络连接之HttpURLConnection和HttpClient
- 关于SSDB的网络模型
- 跨网段数据通信流程