原文地址:java语言中,一个汉字是几个字符? - 知乎

可能是2个、3个、4个字节。不同的编码格式占字节数是不同的,UTF-8编码下一个中文所占字节也是不确定的

代码如下:

public class EncodeTest {public static void main(String[] args) throws  UnsupportedEncodingException {String name = "中国nihao";System.out.println("UTF-8编码长度:" + name.getBytes("UTF-8").length);System.out.println("ASCII编码长度:" + name.getBytes("ASCII").length);System.out.println("GBK编码长度:" + name.getBytes("GBK").length);System.out.println("GB2312编码长度:" + name.getBytes("GB2312").length);System.out.println("==========================================");String c = "c";System.out.println("UTF-8编码长度:" + c.getBytes("UTF-8").length);System.out.println("ASCII编码长度:" + c.getBytes("ASCII").length);System.out.println("GBK编码长度:" + c.getBytes("GBK").length);System.out.println("GB2312编码长度:" + c.getBytes("GB2312").length);System.out.println("==========================================");}
}>>> 结果如下:
UTF-8编码长度:11
ASCII编码长度:7
GBK编码长度:9
GB2312编码长度:9
==========================================
UTF-8编码长度:1
ASCII编码长度:1
GBK编码长度:1
GB2312编码长度:1
==========================================

java中理论上一个字符占用两个字节,可以推导下。

unicode编码是固定长度的16位,也就是2两个字节代表一个字符。Unicode只是一个编码规范,目前实际实现的unicode编码只要有三种:UTF-8,UCS-2和UTF-16,三种unicode字符集之间可以按照规范进行转换。

  1. UTF-8

UTF-8就是在互联网上使用最广的一种Unicode的实现方式,是Unicode的实现方式之一。

UTF-8最大的一个特点,就是它是一种变长的编码方式。它可以使用1~6个字节表示一个符号,根据不同的符号而变化字节长度

关于UTF-8,汉字占几个字节的问题

占2个字节的:〇(〇有两个读音 xīng líng,(一) xīng 同“星”;(二) líng 同“零”。)

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

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

一个utf8数字占1个字节

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

2. ASCII码

在计算机内部,所有的信息最终都表示为一个二进制的字符串。每一个二进制位(bit)有0和1两种状态,因此八个二进制位就可以组合出256种状态,这被称为一个字节(byte)。也就是说,一个字节一共可以用来表示256种不同的状态,每一个状态对应一个符号,就是256个符号,从0000000到11111111。

ASCII码一共规定了128个字符的编码(0 000 0000–0 111 1111),比如空格”SPACE”是32(二进制00100000),大写的字母A是65(二进制01000001)。这128个符号(包括32个不能打印出来的控制符号),只占用了一个字节的后面7位,最前面的1位统一规定为0。

3. GB2312又称国标码

GB2312由国家标准总局发布,1981年5月1日实施,通行于大陆。它是一个简化字的编码规范,当然也包括其他的符号、字母、日文假名等,共7445个图形字符,其中汉字占6763个。我们平时说6768个汉字,实际上里边有5个编码为空白,所以总共有6763个汉字。

4. GBK是GB2312的扩展

GBK是向上兼容的,因此GB2312中的汉字的编码与GBK中汉字的相同,GBK中还包含繁体字的编码

GBK中每个汉字仍然包含两个字节,第一个字节的范围是0x81-0xFE(即129-254),第二个字节的范围是0x40-0xFE(即64-254)。GBK中有码位23940个,包含汉字21003个。

java语言中,一个汉字是几个字符?相关推荐

  1. java 英文字符 字节_3、在JAVA语言中,每个英文字符占 个字节,每个中文汉字占( )个字节。...

    [判断题]中心原子中的几个原子轨道杂化时,必形成数目相同的杂化轨道. [单选题]集合 用区间表示正确的是 ( ) [单选题]15.Java语言的类间的继承关系是 [单选题]8.编译Java Appli ...

  2. Java快速入门学习笔记6 | Java语言中的for循环语句

    有人相爱,有人夜里开车看海,有人却连LeetCode第一题都解不出来!虽然之前系统地学习过java课程,但是到现在一年多没有碰过Java的代码,遇到LeetCode不知是喜是悲,思来想去,然后清空自己 ...

  3. java 中定义整形变量_智慧职教: 在Java语言中,一条语句可以定义多个变量。例如int a; b;就定义了两个整型变量a 和b。...

    智慧职教: 在Java语言中,一条语句可以定义多个变量.例如int a: b:就定义了两个整型变量a 和b. 答:0 "物的依赖性关系"是( ) 答:资本主义社会之中的人与人之间的 ...

  4. java的逻辑常量_在Java语言中,逻辑常量只有true和(__)两个值;

    [填空题]定义类的保留字是(__)定义接口的保留字是(__); [单选题]结合了不同类型的防火墙特点的是( ). [填空题]Java将运行错误分为两类:(__)和(__), 其对应的类均派生自(__) ...

  5. Java语言中 void和public void的区别,static和public static的区别。

    void 中文意思是 空的,无效的. 编程=数据结构+算法: 在Java语言中,有8种基本的基本数据类型,当用java这个对象语言去描述现实实体时.基本数据类型就用不到了,要专门来引用 一种数据来描述 ...

  6. java语言中的while、do while、for循环

    java语言中的while.do while.for循环 什么是循环呢? 循环就是通过某个条件,重复的执行一段逻辑代码. 1.while循环 语法: while(布尔表达式){ //逻辑代码(循环操作 ...

  7. java语言中类定义数组赋值_在Java语言中,下列对于字符数组的定义并赋值正确的是(选一项)_学小易找答案...

    [单选题]<茶花女--饮酒歌>这段音乐属于级进还是跳进的旋律? <茶花女-饮酒歌>.mp4 [简答题] [单选题]对外汉语教学中以系统讲授语言知识的一类课型,包括语音.词汇.语 ...

  8. SWIFT MX报文基础函数与Java语言中String的方法对照理解

    SWIFT MX报文基础函数与Java语言中String的方法对照理解 前言 一.SWIFT是什么? 二.SWIFT MX是什么? 二.报文基础函数与Java语言中String的方法对照表 总结 前言 ...

  9. java中10》》2_(10*(2-8)+10)/(5-5*2)在JAVA语言中,上面的表达式计算结果为(选一项)_学小易找答案...

    [单选题]下列哪项不是药物的基本属性?( ) [单选题]已知 1 只共阴极 LED 显示器,其中 a 笔段为字形代码的最低位,若需显示数字 1 ,它的字形代码应为 ( ) (1.0分) [单选题]由于 ...

最新文章

  1. xmind 模板_xmind模板打包下载
  2. webp的js插件_让浏览器全面兼容WebP图片格式
  3. java jar 打印_Java 打印流 及 commons-io.jar包方法
  4. 一周最新示例代码回顾 (5/7–5/13)
  5. linux 服务不支持 chkconfig 的解决方法
  6. 【学习笔记】出货认证(QM模块)
  7. HashMap源码解读
  8. spark中用println输出一些控制信息
  9. My97DatePicker在asp.net项目中的使用
  10. 【渝粤教育】国家开放大学2018年春季 建筑结构基础 参考试题
  11. BZOJ 1270: [BeijingWc2008]雷涛的小猫( dp )
  12. springboot集成swagger2,构建优雅的Restful API
  13. mac maven安装位置_Maven的安装以及仓库的作用
  14. 饥荒联机版Mod开发——制作简单的物品(三)
  15. 独到科技CEO:十年扎根社交数据,用AI技术帮助企业更好服务消费者
  16. 我的第一份实习工作结束了!!!
  17. 无招胜有招——面向对象设计模式随笔,
  18. vue中获取后一页面,前一页面的url
  19. HCIP(四)---BMA,NBMA网络类型
  20. Android5.0以上系统的移动网络开关

热门文章

  1. crm客户管理系统为企业带来的价值
  2. nba购票系统php,2018上海NBA playzone门票【购票】
  3. 将二进制、八进制、十六进制转换为十进制
  4. 75道逻辑思维题及答案(1-67答案)
  5. 机器人操控电脑,华为天才少年稚晖君再出手,直呼:项目不太难
  6. 爱因斯坦不为人所知的十大秘密
  7. 计算机学院晚会主题对联,2020春节学校对联精选80副
  8. C语言结构体与共用体03
  9. Vue创建项目、安装插件、引入全局的less变量
  10. 0827 - 踏实做事,心里才踏实