占2个字节的:〇

占3个字节的:基本等同于GBK,含21000多个汉字

占4个字节的:中日韩超大字符集里面的汉字,有5万多个

一个utf8数字占1个字节

一个utf8英文字母占1个字节

在查找 UTF-8 编码资料时发现,很多的帖子说的 UTF-8 编码里,一个汉字占用3个字节,有的还做了个证明

方法1:创建一个没有BOM的UTF-8编码的文本文件,里面保存了几个汉字,然后查看文件的大小。我觉得这样的证明没有一点说服力,因为 UTF-8 是变长的,1-6个字节,少量的汉字检测是不能说明所有的汉字都是的。

方法2:

String s = "中国";
byte[] bs = s.getBytes("UTF-8");
System.out.println(bs.length);

后来我又查看了字符映射表-汉语,找到了正确的答案,少数是汉字每个占用3个字节,多数占用4个字节。

占用3个字节的范围

U+2E80 - U+2EF3 : 0xE2 0xBA 0x80 - 0xE2 0xBB 0xB3      共 115 个
U+2F00 - U+2FD5 : 0xE2 0xBC 0x80 - 0xE2 0xBF 0x95      共 213 个
U+3005 - U+3029 : 0xE3 0x80 0x85 - 0xE3 0x80 0xA9      共 36 个
U+3038 - U+4DB5 : 0xE3 0x80 0xB8 - 0xE4 0xB6 0xB5      共 7549 个
U+4E00 - U+FA6A : 0xE4 0xB8 0x80 - 0xEF 0xA9 0xAA      共 44138 个
U+FA70 - U+FAD9 : 0xEF 0xA9 0xB0 - 0xEF 0xAB 0x99      共 105 个

合计: 52156 个

占用4个字节的范围

U+20000 - U+2FA1D : 0xF0 0xA0 0x80 0x80 - 0xF0 0xAF 0xA8 0x9D      共 64029 个

合计: 64029 个

参考:http://www.ibm.com/developerworks/cn/java/j-lo-chinesecoding/

Java中utf-8占几个字节相关推荐

  1. java中double类型占几个字节_java中各种数据类型占用字节数

    1字节(Byte)=8bit java的基本类型 类型 所占字节 byte 1 short 2 int 4 long 8 float 4 double 8 char 2 String中字母和汉字所占字 ...

  2. 2019.04.08—Java 中字母汉字占几个字节

    今天在做回顾的时候看到的问题: 为什么两个运行的结果不一样呢? 1.弄清java中的字节与字符 问题 在java中,一个字符等于多少字节?或者更详细的问:在java中,一个英文字符等于多少字节?一个中 ...

  3. java中boolean类型占几个字节

    java的基本数据类型中,boolean只有两种状态,默认值为false.取值范围是{true,false},理论上占1bit,实际上: 1.单个的boolean 类型变量在编译的时候是使用的int ...

  4. java中double类型占几个字节_面试官:Java 中有几种基本数据类型是什么?各自占用多少字节?...

    认识基本数据类型 在学习基本数据类型之前,我们先认识一下这两个单词:1.bit --位:位是计算机中存储数据的最小单位,指二进制数中的一个位数,其值为"0"或"1&quo ...

  5. Java中int为什么占四个字节?

    简单了解计算机为什么要采用二进制表示信息: 因为计算机作为一种电子计算机工具,是由大量的电子器件组成的,在这些电子器件中,电路的通断,电位的高低,用两个数字符号"1"和" ...

  6. java中char到底占几个字节的问题

    前些天被问到一个问题:java中一个char可以表示一个汉字吗? 我一想char不是占一个字节吗?汉字在utf-8中占三个字节(还有四字节的),char不能够表示!对方一笑,让我后面查查 所以网上搜了 ...

  7. Java中char类型占几个字节?

    要想弄清楚char占用几个字节,就必须了解Unicode编码机制. 早在Unicode诞生之前,就已经有很多字符集,如美国的ASCII.表示西欧语言的ISO 8859-1.中国的GB18030等. 但 ...

  8. java中汉字究竟占几个字节?

    byte是1个字节,char是两个字节,但是char里可以存一个汉字,这么说汉字就占用两个字节?String类型里的汉字,按照编码格式的不同,分为2-4个字节的占用,UTF-8占用3个字节,特别的占用 ...

  9. java中float类型占4个字节,long类型占8个字节,为什么long类型能自动转换成float类型,且float类型为什么表示的范围比long类型大

    作为常识我们都知道,float型在内存中占用的是4个字节,而long型占用8个字节.单从字节数来看,long型是大于float型的.但实际上,float表示的范围却是比long要大的 float类型的 ...

  10. Java中int数据占几个字节?

    java有八种基本类型: byte(8)二进制 short(16) long(64) int(32) float(32) double(64) char(16) boolean(1) 转载于:http ...

最新文章

  1. vue-cli——vue-resource登录注册实例
  2. .net core 1.0 实现负载多服务器单点登录
  3. eclipse安装阿里规范模板
  4. Python、Java、TypeScript 和 Perl 作者谈语言设计
  5. 织梦php me,GitHub - czmz/DedeCMSv5: 中国专业的PHP网站内容管理系统-织梦内容管理系统...
  6. Selenium爬虫 -- 图片视频的src绝对地址链接分析
  7. LINQ查询表达式详解(2)——查询表达式的转换
  8. Atitit eclipse新特性总结3.1---4.4  4.5
  9. 计算机网络——数据包抓取与分析
  10. 求通俗讲解下tensorflow的embedding_lookup接口的意思
  11. python实现——WORD转PDF(全自动化,支持doc、docx)
  12. Python 玩出花儿了!一文教你用 Python 制作吃豆人游戏! | 附代码
  13. 为什么使用Linux
  14. 机器学习--详解人脸对齐算法SDM-LBF
  15. 自定义钉钉机器人发消息@所有人
  16. 小米网关一二三代的区别【转载】网关,mesh ,zigbee
  17. maven子模块之间互相引入依赖,pom文件报错
  18. 有关获取android唯一识别号IMEI的问题
  19. 用sqlcipher对已有的SQLite数据库加密
  20. 【Hive】快速入门~

热门文章

  1. 速游面经(游戏服务端开发工程师)
  2. 2018最值得期待:云行业估值最高的独立云服务商金山云
  3. 2019湖湘杯 misc3 之miscmisc
  4. 深入浅出matplotlib(59): 理解pcolormesh ()函数的使用一
  5. java常用的单词,快点收藏点赞吃灰
  6. 国际学术论文写作笔记01科学论文的构思、撰写与发表
  7. 物理学建模及仿真平台Chrono安装
  8. JS 中的 assign 方法究竟是 “深克隆” 还是 “浅克隆”?
  9. 什么是uniCloud?
  10. SpringBoot 系列教程(五十一):SpringBoot整合Mybatis Plus代码生成器,自动生成代码