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. [国家集训队]小Z的袜子(莫队,概率)

    题目描述 作为一个生活散漫的人,小Z每天早上都要耗费很久从一堆五颜六色的袜子中找出一双来穿.终于有一天,小Z再也无法忍受这恼人的找袜子过程,于是他决定听天由命…… 具体来说,小Z把这N只袜子从1到N编 ...

  2. 【解决】venv 的名字在 zsh prompt 中不显示

    venv 的名字在 zsh prompt 中不显示 ➜ liyongjiandeMBP.lan [/Users/liyongjian/lyj] python3 -m venv lyj_venv ➜ l ...

  3. 安装docker和更改docker镜像下载目录

    centos6.x系列: yum install http://mirrors.yun-idc.com/epel/6/i386/epel-release-6-8.noarch.rpm yum inst ...

  4. EpiiAdmin 开源的php交互性管理后台框架, 让复杂的交互变得更简单!Phper快速搭建交互性平台的开发框架,基于Thinkphp5.1+Adminlte3.0+Require.js。

    EpiiAdmin EpiiAdmin php开源交互性管理后台框架,基于Thinkphp5.1+Adminlte3.0+Require.js, 让复杂的交互变得更简单!Phper快速搭建交互性平台的 ...

  5. Thinkphp5所有页面验证用户是否登陆

    新建Base.php控制器,所有的页面继承自它 <?php namespace app\index\controller; use think\Controller; class Base ex ...

  6. Cent OS 下 VI 使用方法

    vi的基本概念  基本上vi可以分为三种状态,分别是命令模式(command mode).插入模式(Insert mode)和底行模式(last line mode),各模式的功能区分如下: 1) 命 ...

  7. scala成长之路(3)隐式转换

    不废话,先上例子:定义一个参数类型为String的函数: scala> def sayHello(name:String) = println("hello " + name ...

  8. No configuration found for this host:al

    想尝试多个agent来进行传输数据其中的一个配置文件如下: al.sources = r1al.sinks = k1al.channels = c1 al.sources.r1.type = avro ...

  9. 一笔画问题 南阳acm42(貌似没用到什么算法)

    一笔画问题 时间限制:3000 ms  |  内存限制:65535 KB 难度:4   描述 zyc从小就比较喜欢玩一些小游戏,其中就包括画一笔画,他想请你帮他写一个程序,判断一个图是否能够用一笔画下 ...

  10. Linux 控制台

    shell shell命令分为两种:分别是内部命令和外部命令. 内部命令:在安装的时候嵌入系统内核. 外部命令:以文件的形式存在. 可以使用type命令查看是内部命令还是外部命令. Linux中,默认 ...