new String(str.getBytes(“gbk”),“gbk”)的用法详解

前提是str存放的是汉字

一、如果是new String(str.getBytes(“gbk”),“gbk”)时,可以分为两步:

第一步:byte[] bytes=str.getBytes(“gbk”)

告诉Java虚拟机将中文以“gbk”的方式转换为字节数组。一个汉字对应两个字节。

第二步:String s=new String(bytes,“gbk”)   // 执行后的s就是第一步的str。

告诉虚拟机将字节数组中的字节以“gbk”的方式将每2个字节组装成一个汉字。此汉字s就是第一步str代表的汉字。

二、如果new String(str.getBytes(“gbk”),“iso8859-1”)时

对应的第二步便是:

String s=new String(bytes,“iso8859-1”)时,此时是将每1字节组装成一个“?” 。此时的s是若干个“?”,我们可以把“?”看做是一种特殊的汉字,它代表的信息并没有损失是可以还原回来的。

三、如果new String(str.getBytes(“gbk”),“utf-8”)时

对应的第二步便是:

String s=new String(bytes,“utf-8”)时,此时是将每3字节组装成一个汉字。此汉字s就是第一步str代表的汉字。

实际的网络传输的过程中,是将汉字以utf-8编码后在网上传输,此种方式的好处就是节省带宽流量。IE浏览器中的internet选项下高级栏中有说“总是以utf-8传输数据”。

注意当字节数组用iso8859-1组装成的“?”,用utf-8编码此特殊的汉字时就会变成2个字节。

new String(str.getBytes(“gbk”),“gbk”)的用法详解的更多相关文章

  1. JSON详解+ C# String.Format格式说明+ C# ListView用法详解 很完整

    JSON详解 C# String.Format格式说明 C# ListView用法详解 很完整

  2. STL string 常见用法详解

    string 常见用法详解 1. string 的定义 //定义string的方式跟基本数据类型相同,只需要在string后跟上变量名即可 string str; //如果要初始化,可以直接给stri ...

  3. C#中string.format用法详解

    C#中string.format用法详解 本文实例总结了C#中string.format用法.分享给大家供大家参考.具体分析如下: String.Format 方法的几种定义: String.Form ...

  4. C#的String.Split 分割字符串用法详解的代码

    代码期间,把代码过程经常用的内容做个珍藏,下边代码是关于C#的String.Split 分割字符串用法详解的代码,应该对码农们有些用途. 1) public string[] Split(params ...

  5. @RequestMapping 用法详解之地址映射

    @RequestMapping 用法详解之地址映射 引言: 前段时间项目中用到了RESTful模式来开发程序,但是当用POST.PUT模式提交数据时,发现服务器端接受不到提交的数据(服务器端参数绑定没 ...

  6. Class.forName()用法详解

    Class.forName()用法详解 标签: classjvmjdbc数据库documentationjava 2012-03-29 09:39 40414人阅读 评论(8) 收藏 举报  分类: ...

  7. C语言 sscanf用法详解

    /* sscanf用法详解 */ #include <stdio.h> /* sscanf头文件 */ #include <stdlib.h> #include <str ...

  8. golang格式化输出-fmt包用法详解

    golang格式化输出-fmt包用法详解 注意:我在这里给出golang查询关于包的使用的地址:https://godoc.org    声明: 此片文章并非原创,大多数内容都是来自:https:// ...

  9. Delphi TStringHelper用法详解

    Delphi TStringHelper用法详解 (2013-08-27 22:45:42) 转载▼ 标签: delphi_xe5 it 分类: Delphi Delphi XE4的TStringHe ...

随机推荐

  1. python运算符及优先级顺序

    python语言是一门脚本语言,支持面向对象.面向过程编程,兼具编译性和解释性的动态语言,整理出学习过程中一些基本Python运算符和运算符的优先级顺序. 一.算术运算符 运算符 描述 + 加 - 两 ...

  2. NC使用技巧

    1. NC 1.1概述 1.1.1 优点: 1)网络工具中的瑞士军刀 2)侦听模式/传输模式. 3)可代替telnet获取banner信息. 4)传输文件/目录. 5)传输文本信息. 6)加密传输文件 ...

  3. echarts饼图扇区添加点击事件

    在echarts最后面添加上这段代码就可以了 function eConsole(param) { //alert(option.series[0].data.length); //alert(opt ...

  4. phpstudy配置域名后apache无法启动

    1.设置域名后重启 apache停止了 检查步骤1.php路径不要有中文,phpstudy重新安装在无中文路径 2.检查80端口是否被占用,如果被占用可以停止该程序或者修改apache/nginx 端 ...

  5. php sign签名实例

    1:实现签名代码: /** * 签名生成算法 * @param array $params API调用的请求参数集合的关联数组,不包含sign参数 * @param string $secret 签名 ...

  6. STL——list

    1.关键概述 list 是定义在 namespace::std 的模板,声明在 <list> ,存储结构是 双向链表, 提供的 正向和反向迭代器. 2.构造list对象 list<i ...

  7. PAT-B java实现

    注意:java提交PAT时,不需要加package : 类名必须是Main. 1001 害死人不偿命的(3n+1)猜想 (15) 输入格式:每个测试输入包含1个测试用例,即给出自然数n的值. 输出格式 ...

  8. go学习笔记-运算符

    运算符 运算符 内置运算符 算术运算符 关系运算符 逻辑运算符 位运算符 赋值运算符 其他运算符 算术运算符 假定 A 值为 10,B 值为 20. 运算符 描述 实例 + 相加 A + B 输出结果 ...

  9. HyperLedger Fabric 1.4 超级账本项目(5.4)

    超级账本(Hyperledger)项目分框架类和工具类两种项目,框架类有Hyperledger Burrow.Hyperledger Fabric.Hyperledger Indy.Hyperledg ...

  10. (数据科学学习手札29)KNN分类的原理详解&Python与R实现

    一.简介 KNN(k-nearst neighbors,KNN)作为机器学习算法中的一种非常基本的算法,也正是因为其原理简单,被广泛应用于电影/音乐推荐等方面,即有些时候我们很难去建立确切的模型来描述 ...