atitit.无损传输二进制数据串传输网络

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

17194754" target="_blank">

版权声明:本文博客原创文章。博客,未经同意,不得转载。

atitit.无损传输二进制数据串传输网络的更多相关文章

  1. gSoap传输二进制数据

    最近使用gSoap传输二进制数据,遇到问题.gSoap不能一次传输二进制数据.所以使用分包传送. struct xsd_DwgInfo { ];//分包大小 int m_nReadSize;// bo ...

  2. Linux企业级项目实践之网络爬虫(16)——使用base64传输二进制数据

    用http传输二进制的数据时,需要将二进制做一下转化,例如传输的int类型,将int类型之间转为char以后,丢失掉了长度的信息,如数字123456,本来只有4个字节,但是转化成文本的"12 ...

  3. http协议传输二进制数据以及对输入流(php://input)和http请求的理解

    1.index.php <?php $data=file_get_contents('./a.jpg'); $opts = array('http' => array( 'method' ...

  4. php将字符串转为二进制数据串

    /** * 将字符串转换成二进制 * @param type $str * @return type */ function StrToBin($str){ //1.列出每个字符 $arr = pre ...

  5. atitit.二进制数据无损转字符串网络传输

    atitit.二进制数据无损转字符串网络传输 1. gbk的网络传输问题,为什么gbk不能使用来传输二进制数据 1 2. base64 2 3. iso-8859-1  (推荐) 2 4. utf-8 ...

  6. C++和python使用struct传输二进制数据结构来实现

    网络编程问题往往涉及二进制数据的传输.在C++经常使用的传输是文本字符串和分组结构. 假设该数据可以预先送入连续的内存区域,然后让send函数来获得的第一个地址,这一块连续的内存区就能完成传输数据.文 ...

  7. 前端H5中JS用FileReader对象读取blob对象二进制数据,文件传输

    HTML5中的Blob对象只是二进制数据的容器,本身并不能操作二进制,故本篇将对其操作对象FileReader进行介绍. FileReader FileReader主要用于将文件内容读入内存,通过一系 ...

  8. 网络TCp数据的传输设计(黏包处理)

    //1.该片为引用别人的文章:http://www.cnblogs.com/alon/archive/2009/04/16/1437599.html 解决TCP网络传输"粘包"问题 ...

  9. 网络学习day02_OSI七层模型及数据的传输过程

    title: 2018.9.2 OSI七层模型及数据的传输过程 tags: 计算机网络, OSI七层模型, 数据传输, 数据解封装 --- OSI七层模型和TCP/IP五层模型 OSI七层模型 我们说 ...

随机推荐

  1. error C2504: “CActiveXDocControl”: 基类没有定义

    这样的错误,通常,第一个文件失败: 1.相互头包括 2.头文件秩序 此错误是编译错误,和"inclued头文件"有关 问题描写叙述 有三个头文件AgentSDK.h.AA.h.BB ...

  2. Java EE (5) -- Java EE 6 JavaServer Faces Developer Certified Expert(1z0-896)

    Section 1: Essentials of JSF2.0 Identify the features of JSF such as Facelets, BookMarkable View, AJ ...

  3. django 带參数的 url

    url就像筋络一样把django这个大框架的各个部分紧紧的连接成一个总体,所以要了解django从url開始是一个不错的方向. 一般的view template url的关系这里就不讲了,以下会具体介 ...

  4. UVa 825 - Walking on the Safe Side

    题目:在一个N*M的网格中,从左上角走到右下角,有一些点不能经过,求最短路的条数. 分析:dp,帕斯卡三角.每一个点最短的就是走N条向下,M条向右的路. 到达每一个点的路径条数为左边和上面的路径之和. ...

  5. Java RMI(远程方法调用) 实例与分析

    目的: 通过本文,可以加深对Java RMI的理解,知道它的工作原理,怎么使用等. 也为了加深我自己的理解,故整理成文.不足之处,还望指出. 概念解释: RMI(RemoteMethodInvocat ...

  6. CentOS6.2安装memcache

    一,安装libevent # cd /tmp # wget http://www.monkey.org/~provos/libevent-1.3.tar.gz # tar -zxvf libevent ...

  7. 自己写的sql排序

    create function dbo.Fn_Sort (  @str varchar(1024) ) returns nvarchar(100) as begin declare @tb table ...

  8. [LeetCode119]Pascal's Triangle II

    题目: Given an index k, return the kth row of the Pascal's triangle. For example, given k = 3,Return [ ...

  9. WebStorm主题设置

    对于使用WebStorm作为开发工具的筒子们.应该忍受不了默认的主题吧,可是自己去一个一个设置又太繁琐.So,去网上下个主题那是必须的. 搜来一圈,发现一个站点提供了不少主题.闲话少说,进入正题. 1 ...

  10. Linux鸟哥的私房菜(3)— 总体规划和磁盘分区 读书笔记

    1.每个硬件设备Linux中的文件名称 在Linux系统中.每一个设备都被当成一个文件来对待.而且差点儿全部的硬件设备文件都在/dev文件夹下 常见设备与其对于文件名称 2.磁盘连接的方式与设备文件名 ...