new String(str.getBytes(“gbk”),“gbk”)的用法详解
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”)的用法详解的更多相关文章
- JSON详解+ C# String.Format格式说明+ C# ListView用法详解 很完整
JSON详解 C# String.Format格式说明 C# ListView用法详解 很完整
- STL string 常见用法详解
string 常见用法详解 1. string 的定义 //定义string的方式跟基本数据类型相同,只需要在string后跟上变量名即可 string str; //如果要初始化,可以直接给stri ...
- C#中string.format用法详解
C#中string.format用法详解 本文实例总结了C#中string.format用法.分享给大家供大家参考.具体分析如下: String.Format 方法的几种定义: String.Form ...
- C#的String.Split 分割字符串用法详解的代码
代码期间,把代码过程经常用的内容做个珍藏,下边代码是关于C#的String.Split 分割字符串用法详解的代码,应该对码农们有些用途. 1) public string[] Split(params ...
- @RequestMapping 用法详解之地址映射
@RequestMapping 用法详解之地址映射 引言: 前段时间项目中用到了RESTful模式来开发程序,但是当用POST.PUT模式提交数据时,发现服务器端接受不到提交的数据(服务器端参数绑定没 ...
- Class.forName()用法详解
Class.forName()用法详解 标签: classjvmjdbc数据库documentationjava 2012-03-29 09:39 40414人阅读 评论(8) 收藏 举报 分类: ...
- C语言 sscanf用法详解
/* sscanf用法详解 */ #include <stdio.h> /* sscanf头文件 */ #include <stdlib.h> #include <str ...
- golang格式化输出-fmt包用法详解
golang格式化输出-fmt包用法详解 注意:我在这里给出golang查询关于包的使用的地址:https://godoc.org 声明: 此片文章并非原创,大多数内容都是来自:https:// ...
- Delphi TStringHelper用法详解
Delphi TStringHelper用法详解 (2013-08-27 22:45:42) 转载▼ 标签: delphi_xe5 it 分类: Delphi Delphi XE4的TStringHe ...
随机推荐
- CF605A Sorting Railway Cars(递推)
题目描述 An infinitely long railway has a train consisting of n cars, numbered from 1 to n (the numbers ...
- [USACO08NOV]时间管理Time Management(排序,贪心)
题目描述 作为一名忙碌的商人,约翰知道必须高效地安排他的时间.他有N工作要 做,比如给奶牛挤奶,清洗牛棚,修理栅栏之类的. 为了高效,列出了所有工作的清单.第i分工作需要T_i单位的时间来完成,而 且 ...
- Jensen 不等式
若f(x)为区间I上的下凸(上凸)函数,则对于任意xi∈I和满足∑λi=1的λi>0(i=1,2,...,n),成立: \[f(\sum ^{n} _{i=1} \lambda _{i}x_{i ...
- mysql 导出数据字典
使用Navicat工具 查询: SELECT TABLE_SCHEMA AS '数据库', TABLE_NAME AS '表名', COLUMN_NAME AS '字段名', COLUMN_TYPE ...
- less学习一
Less 是一门 CSS 预处理语言,它扩展了 CSS 语言,增加了变量.Mixin.函数等特性,使 CSS 更易维护和扩展. Less 可以运行在 Node 或浏览器端. less文件只有被编译后才 ...
- PHP 使用程序进行数据库字典文件生成 导出数据库字典
作为一个程序员肯定是不愿意写文档的!!! 尤其最麻烦的数据库字典文档 所以偷懒写了一个PHP程序来进行数据库字典导出 记录一下 以免以后忘记 //使用的是Laravel框架 可以转换成原生导出$ta ...
- Linux上面安装redis和简单使用
一.安装,redis的官方的网址 https://redis.io/ 目前的最高的版本是4.0,我安装的是2.*的版本 1.下载源码,解压后编译源码. $ wget http://download ...
- Python学习 :文件操作
文件基本操作流程: 一. 创建文件对象 二. 调用文件方法进行操作 三. 关闭文件(注意:只有在关闭文件后,才会写入数据) fh = open('李白诗句','w',encoding='utf-8') ...
- UVa Problem 100 The 3n+1 problem (3n+1 问题)
参考:https://blog.csdn.net/metaphysis/article/details/6431937 #include <iostream> #include <c ...
- linux io 学习笔记(03)---共享内存,信号灯,消息队列
system V IPC 1)消息队列 2)共享内存 3)信号灯(信号量集) 1.消息队列. ipcs -q 查看系统中使用消息队列的情况 ipcrm -q +msqid 删除消息队列 消息队列工作原 ...