1、先说重点:
不同的编码格式占字节数是不同的,UTF-8编码下一个中文所占字节也是不确定的,可能是2个、3个、4个字节;
2、以下是源码:
@Test
public void test1() throws UnsupportedEncodingException {
String a = "名";
System.out.println("UTF-8编码长度:"+a.getBytes("UTF-8").length);
System.out.println("GBK编码长度:"+a.getBytes("GBK").length);
System.out.println("GB2312编码长度:"+a.getBytes("GB2312").length);
System.out.println("==========================================");
String c = "0x20001";
System.out.println("UTF-8编码长度:"+c.getBytes("UTF-8").length);
System.out.println("GBK编码长度:"+c.getBytes("GBK").length);
System.out.println("GB2312编码长度:"+c.getBytes("GB2312").length);
System.out.println("==========================================");
char[] arr = Character.toChars(0x20001);
String s = new String(arr);
System.out.println("char array length:" + arr.length);
System.out.println("content:| " + s + " |");
System.out.println("String length:" + s.length());
System.out.println("UTF-8编码长度:"+s.getBytes("UTF-8").length);
System.out.println("GBK编码长度:"+s.getBytes("GBK").length);
System.out.println("GB2312编码长度:"+s.getBytes("GB2312").length);
System.out.println("==========================================");
}
3、运行结果
UTF-8编码长度:3
GBK编码长度:2
GB2312编码长度:2
==========================================
UTF-8编码长度:4
GBK编码长度:1
GB2312编码长度:1
==========================================
char array length:2
content:|
Java一个汉字占几个字节(详解与原理)(转载)
1.先说重点: 不同的编码格式占字节数是不同的,UTF-8编码下一个中文所占字节也是不确定的,可能是2个.3个.4个字节: 2.以下是源码: 1 @Test 2 public void test1() ...
请问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 ...
随机推荐
Using sql azure for Elmah
The MSDN docs contain the list of T-SQL that is either partially supported or not supported. For ex ...
jquery easyui datagrid 分页 详解
前些天用jquery easyui的table easyui-datagrid做分页显示的时候,折腾了很久,后来终于解决了.其实不难,最主要我不是很熟悉前端的东西. table easyui-data ...
.NET的SqlHelper应用代码
首先需要引用命名空间 ,同时也需要右击'引用' --> '添加引用' --> '程序集' --> '框架' --> 'System.Configuration',SqlHelp ...
实战开发-》融云tp3.2.3
1.先去下载sdk 2.我放在的位置如下: 3.之前试了试,怎么引入都不成功,所以我加入了命名空间 还有,我把methods下的所有类都加了命名空间,心里安慰吧. 4.在公共函数写函数,例如 填写自己 ...
CentOS 7编译安装php7.0.7以及可能遇到的问题的解决方案
https://blog.csdn.net/chenxiabinffff/article/details/51612149
Java8中String.join方法
List names=new ArrayList(); names.add("1"); names.add("2"); names. ...
仿迅雷播放器教程 -- 十年经验大牛对MFC的认识 (7)
由于上一个教程做界面用的是MFC,所以这里不得不说一下MFC的历史,请看正文: 原文链接:http://blog.csdn.net/sunhui/article/details/319551 作者 ...
虚拟机中扩展linux系统存储空间
reference: https://blog.csdn.net/greenapple_shan/article/details/52799631 https://blog.csdn.net/lyd1 ...
C高级第四次作业
作业要求一 最简单的wordcount 具体要求:http://www.cnblogs.com/xinz/p/7426280.html 1.设计思路: 0.0版本设计思路: 第一步:读入用户想要操作的 ...
spring框架学习(八)spring管理事务方式之注解配置
1.DAO AccountDao.java package cn.mf.dao; public interface AccountDao { //加钱 void increaseMoney(Integ ...