Java一个汉字占几个字节(详解与原理)(转载)
1、先说重点:
不同的编码格式占字节数是不同的,UTF-8编码下一个中文所占字节也是不确定的,可能是2个、3个、4个字节;
2、以下是源码:

1 @Test
2 public void test1() throws UnsupportedEncodingException {
3 String a = "名";
4 System.out.println("UTF-8编码长度:"+a.getBytes("UTF-8").length);
5 System.out.println("GBK编码长度:"+a.getBytes("GBK").length);
6 System.out.println("GB2312编码长度:"+a.getBytes("GB2312").length);
7 System.out.println("==========================================");
8
9 String c = "0x20001";
10 System.out.println("UTF-8编码长度:"+c.getBytes("UTF-8").length);
11 System.out.println("GBK编码长度:"+c.getBytes("GBK").length);
12 System.out.println("GB2312编码长度:"+c.getBytes("GB2312").length);
13 System.out.println("==========================================");
14
15 char[] arr = Character.toChars(0x20001);
16 String s = new String(arr);
17 System.out.println("char array length:" + arr.length);
18 System.out.println("content:| " + s + " |");
19 System.out.println("String length:" + s.length());
20 System.out.println("UTF-8编码长度:"+s.getBytes("UTF-8").length);
21 System.out.println("GBK编码长度:"+s.getBytes("GBK").length);
22 System.out.println("GB2312编码长度:"+s.getBytes("GB2312").length);
23 System.out.println("==========================================");
24 }

3、运行结果

1 UTF-8编码长度:3
2 GBK编码长度:2
3 GB2312编码长度:2
4 ==========================================
5 UTF-8编码长度:4
6 GBK编码长度:1
7 GB2312编码长度:1
8 ==========================================
9 char array length:2
10 content:|Java一个汉字占几个字节(详解与原理)(转载)的更多相关文章
- Java一个汉字占几个字节(详解与原理)
1.先说重点: 不同的编码格式占字节数是不同的,UTF-8编码下一个中文所占字节也是不确定的,可能是2个.3个.4个字节: 2.以下是源码: @Test public void test1() thr ...
- 请问utf-8的中文是一个汉字占三个字节长度吗?
这是个好问题,可以当作一个笔试题.先从字符编码讲起. 1.美国人首先对其英文字符进行了编码,也就是最早的ascii码,用一个字节的低7位来表示英文的128个字符,高1位统一为0: 2.后来欧洲人发现尼 ...
- 【转】utf-8的中文是一个汉字占三个字节长度
因为看到百度里面这个人回答比较生动,印象比较深刻,所以转过来做个笔记 原文链接 https://zhidao.baidu.com/question/1047887004693001899.html 知 ...
- Java架构师方案—多数据源开发详解及原理(二)(附完整项目代码)
1. mybatis下数据源开发工作 2. 数据源与DAO的关系原理模型 3. 为什么要配置SqlSessionTemplate类的bean 4. 多数据源应用测试 1. mybatis下数据源开发工 ...
- mysql和oracle的一个汉字占几个字符
以前一直使用oracle11g,一个汉字占3个字节,所以在操作mysql时也一直这样分配长度. 今天测试了下发现不对了 可以看到第一个的长度确实是15,但是第二个为什么是5? 在网上找到资料:char ...
- python中一个汉字点3个字节? utf-8
今天发现了一个汉字占了3个字节,一开始以为是两个呢,字符串切片时总出现乱码,后来才发现一个中文占3个字节.这才解决了乱码问题 原来 1. utf-8 编码中,一个汉字占三个字节.英文字母是一个占用一 ...
- java梳理-一个汉字占多大空间
面试题:一个汉字占多大空间. 事实上这个问题我了解不深的,知道结论不知道为什么.借此梳理下认识. 先回想下java基本类型 一基本类型 :简称四类八种,声明变量的同一时候分配了空间.举比例如以下: ...
- 关于java中char占几个字节,汉字占几个字节
我们平常说,java中char占2个字节,可又说汉字在不通的编码格式中所占的位数是不同的,比如gbk中汉字占2个字节,utf8中多数占3个字节,少数占4个.而所有汉字在java程序中我们都可以简单的用 ...
- Oracle-一个中文汉字占几个字节?
Oracle 一个中文汉字占用几个字节 Oracle 一个中文汉字 占用几个字节,要根据Oracle中字符集编码决定!!! 1. 如果定义为VARCHAR2(32 CHAR),那么该列最多就可以存储3 ...
随机推荐
- java入门——第一个java程序
来源:https://course.tianmaying.com/java-basic%2Bjava-hello-world# java的基础特征 1 Java是一种大小写敏感的语言 2 程序的文件名 ...
- PHP之旅3 php数组以及遍历数组 以及each() list() foreach()
php的数组的定义 <?php //php中定义数组时可以通过索引直接进行赋值: $mArr[0]="哈哈"; $mArr[1]=70; $mArr[2]='haha'; e ...
- java在编译期和运行期都做了什么
Java对象内存存储,引用传递,值传递详细图解 java对象在内存中的分配 编译过程: 编译器把一种语言规范转化为另一种语言规范的这个过程需要哪些步骤?回答这个问题需要参照<编译原理>,总 ...
- 平衡二叉树(AVL)的理解和实现(Java)
AVL的定义 平衡二叉树:是一种特殊的二叉排序树,其中每一个节点的左子树和右子树的高度差至多等于1.从平衡二叉树的名字中可以看出来,它是一种高度平衡的二叉排序树.那么什么叫做高度平衡呢?意思就是要么它 ...
- VSTO学习(四)——自定义Excel UI 转载
本专题概要 引言 自定义任务窗体(Task Pane) 自定义选项卡,即Ribbon 自定义上下文菜单 小结 引言 在上一个专题中为大家介绍如何创建Excel的解决方案,相信大家通过从上面一个专题之后 ...
- (转) Rabbitmq学习笔记
详见原文: http://blog.csdn.net/shatty/article/details/9529463 Rabbitmq学习笔记
- 【Java并发编程】:并发新特性—塞队列和阻塞栈
阻塞队列 阻塞队列是Java5并发新特性中的内容,阻塞队列的接口是Java.util.concurrent.BlockingQueue,它有多个实现类:ArrayBlockingQueue.Delay ...
- 由一段代码谈前端js优化和编码规范(一) 分类: JavaScript 2015-03-21 12:43 668人阅读 评论(1) 收藏
这段代码是撸主刚毕业那会写的,主要是实现一个左侧的导航条的折叠功能.当时实现的比较简陋,每次在导航条增加新的项目的时候,都要手动去修改js代码中写死的索引...确实是比较恼火的,后来就修改了一下,能够 ...
- 《Android应用性能优化》3——电量、渲染
7.延长电池续航时间 尽管应用有时看起来没做多少事,但实际上可能会很耗电,运行不了多久就会把电量榨干,使设备开机不到半天就没电了.那些被归为“电池杀手”的应用,最终的宿命就是被删除.得差评.不挣钱.因 ...
- Android 开发工具类 25_getJSON
获取 JSON 数据并解析 import java.io.InputStream; import java.net.HttpURLConnection; import java.net.URL; im ...