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:|
  11. Java一个汉字占几个字节(详解与原理)的更多相关文章

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

      1. 请问utf-8的中文是一个汉字占三个字节长度吗?
      1. 这是个好问题,可以当作一个笔试题.先从字符编码讲起. 1.美国人首先对其英文字符进行了编码,也就是最早的ascii码,用一个字节的低7位来表示英文的128个字符,高1位统一为0: 2.后来欧洲人发现尼 ...

      1. 【转】utf-8的中文是一个汉字占三个字节长度
      1. 因为看到百度里面这个人回答比较生动,印象比较深刻,所以转过来做个笔记 原文链接 https://zhidao.baidu.com/question/1047887004693001899.html 知 ...

      1. Java架构师方案—多数据源开发详解及原理(二)(附完整项目代码)
      1. 1. mybatis下数据源开发工作 2. 数据源与DAO的关系原理模型 3. 为什么要配置SqlSessionTemplate类的bean 4. 多数据源应用测试 1. mybatis下数据源开发工 ...

      1. mysqloracle的一个汉字占几个字符
      1. 以前一直使用oracle11g,一个汉字占3个字节,所以在操作mysql时也一直这样分配长度. 今天测试了下发现不对了 可以看到第一个的长度确实是15,但是第二个为什么是5? 在网上找到资料:char ...

      1. python中一个汉字点3个字节? utf-8
      1. 今天发现了一个汉字占了3个字节,一开始以为是两个呢,字符串切片时总出现乱码,后来才发现一个中文占3个字节.这才解决了乱码问题 原来  1. utf-8 编码中,一个汉字占三个字节.英文字母是一个占用一 ...

      1. java梳理-一个汉字占多大空间
      1. 面试题:一个汉字占多大空间. 事实上这个问题我了解不深的,知道结论不知道为什么.借此梳理下认识. 先回想下java基本类型 一基本类型 :简称四类八种,声明变量的同一时候分配了空间.举比例如以下:   ...

      1. 关于javachar占几个字节,汉字占几个字节
      1. 我们平常说,javachar2个字节,可又说汉字在不通的编码格式中所占的位数是不同的,比如gbk中汉字占2个字节,utf8中多数占3个字节,少数占4个.而所有汉字在java程序中我们都可以简单的用 ...

      1. Oracle-一个中文汉字占几个字节?
      1. Oracle 一个中文汉字占用几个字节 Oracle 一个中文汉字 占用几个字节,要根据Oracle中字符集编码决定!!! 1. 如果定义为VARCHAR2(32 CHAR),那么该列最多就可以存储3 ...

    1.  
    2. 随机推荐

        1. [Git] Ubuntu 升级 git 版本
        1. $ sudo add-apt-repository ppa:git-core/ppa $ sudo apt-get update $ sudo apt-get install git

        1. WPF中弹出文件夹浏览对话框
        1. 附一个共享目录正则表达式判断: bool result= System.Text.RegularExpressions.Regex.IsMatch("\\pc-test\share" ...

        1. kzalloc 函数详解(转载)
        1. kzalloc申请内存的时候, 效果等同于先是用 kmalloc() 申请空间 , 然后用 memset() 来初始化 ,所有申请的元素都被初始化为 0. view plain /** * kzal ...

        1. 802.1X基础
        1. 这是一个认证规范.使用EAPOL协议在客户端与认证端交互. EAPOL协议:Extensible Authentication Protocol over LAN. 假设三个实体: 客户端:PC 认证 ...

        1. 【原创】我所理解的自动更新-APP发布与后台发布
        1. 发布后台 创建渠道:添加新的渠道,设置渠道名称,自动生成渠道id.    查看渠道:查看渠道基本信息,渠道app版本号,资源版本号,是否开启更新.    创建/更新APP:选择打包ios,androi ...

        1. GUI生成exe文件
        1. gui如何生成exe文件: 已经有gui.m和gui.fig文件 1 安装编译器.已经安装好了vs10的. 2 设置编译器.在matlab命令行输入mex -setup,选择安装的c编译器 3 调用编 ...

        1. 就最近学习MVC4.0的页面用法学到的东西
        1. 最近进了一家新公司,学习的东西还是蛮多的,首先了解的是@using(new Ajax.beginForm("",null,new AjaxOptions() { OnSuccess ...

        1. WEB进度条控件
        1. 近段时间为了工作的需要学习了一下写自定义控件,呵呵!以前没写过,近段时间才开始研究的,昨天写了一个WEB状态条控件,可以设置进度条的百分比,也可以设置它的总数与当前的数量来自动计算百分比,可以设置颜色 ...

        1. 从零开始调用一个手机号归属地查询API
        1. 自从过上程序员的生活,身边总是或多或少的提及一些API(应用程序接口),网上各种入门教程.实例大把大把,有的只是贴上部分代码,也不给注释, 写Demo的时候连编译都无法通过.下面我从小白开始来介绍下调 ...

        1. wex5 实战 图片触摸放大移动插件easyzoom的使用与集成
        1. 一 前言 客户的需求就是上帝的召唤. 作为一个开发人员,或者软件从业者,客户的要求就是准则. 遇到一个客户,让我做一个图片放大,但是移动拖拽要定位精准.之前研究过一个hammer插件,多次尝试放大后的 ...