• Java不同编码方式,中英文字符所占字节数


    测试代码

     1 public class Test {
     2 
     3     public static void main(String[] args){
     4 
     5         String[] charsetNames={    
     6                                     "UTF-8",
     7                                     "UTF-16",
     8                                     "UTF-16BE",
     9                                     "UTF-16LE",
    10                                     "UTF-32",
    11                                     "UTF-32BE",
    12                                     "UTF-32LE",
    13                                     "UNICODE",
    14                                     "GBK",
    15                                     "GB2312",
    16                                     "GB18030",
    17                                     "ISO8859-1",
    18                                     "BIG5",
    19                                     "ASCII"
    20                                }; 
    21 
    22 
    23         for(int i=0;i<charsetNames.length;i++){
    24             printByteLength(charsetNames[i]);
    25         }
    26 
    27     }
    28 
    29     /**
    30      * String类的不带参数的getBytes()方法会以程序所运行平台的默认编码方式为准来进行转换,
    31      * 在不同环境下可能会有不同的结果,因此建议使用指定编码方式的getBytes(String charsetName)方法。
    32      */
    33     public static void printByteLength(String charsetName){
    34         String en="a";    //一个英文字符
    35         String zh="啊";    //一个中文字符
    36         try {
    37             System.out.println(charsetName+"编码英文字符所占字节数:"+en.getBytes(charsetName).length);
    38             System.out.println(charsetName+"编码中文字符所占字节数:"+zh.getBytes(charsetName).length);
    39             System.out.println();
    40         } catch (UnsupportedEncodingException e) {
    41             System.out.println("非法编码格式!");
    42         }
    43     }
    44 }

    运行结果:

    UTF-8编码英文字符所占字节数:1
    UTF-8编码中文字符所占字节数:3
    
    UTF-16编码英文字符所占字节数:4
    UTF-16编码中文字符所占字节数:4
    
    UTF-16BE编码英文字符所占字节数:2
    UTF-16BE编码中文字符所占字节数:2
    
    UTF-16LE编码英文字符所占字节数:2
    UTF-16LE编码中文字符所占字节数:2
    
    UTF-32编码英文字符所占字节数:4
    UTF-32编码中文字符所占字节数:4
    
    UTF-32BE编码英文字符所占字节数:4
    UTF-32BE编码中文字符所占字节数:4
    
    UTF-32LE编码英文字符所占字节数:4
    UTF-32LE编码中文字符所占字节数:4
    
    UNICODE编码英文字符所占字节数:4
    UNICODE编码中文字符所占字节数:4
    
    GBK编码英文字符所占字节数:1
    GBK编码中文字符所占字节数:2
    
    GB2312编码英文字符所占字节数:1
    GB2312编码中文字符所占字节数:2
    
    GB18030编码英文字符所占字节数:1
    GB18030编码中文字符所占字节数:2
    
    ISO8859-1编码英文字符所占字节数:1
    ISO8859-1编码中文字符所占字节数:1
    
    BIG5编码英文字符所占字节数:1
    BIG5编码中文字符所占字节数:2
    
    ASCII编码英文字符所占字节数:1
    ASCII编码中文字符所占字节数:1
  • 相关阅读:
    Java基础知识
    spring data jpa 表关联设置用户表关联角色表配置
    centos 服务器 nginx 负载均衡服务安装
    Java jdk 8 新特性
    个人收款支付系统-半自动化解决方案
    纯净版Windows7系统迅雷下载路径
    Centos里开机自启动Node 服务程序
    Centos 7将java jar包自定义开机启动服务
    安装zabbix-agent客户端
    Centos7系统安装Zabbix4.4(yum源安装)
  • 原文地址:https://www.cnblogs.com/Qian123/p/5799835.html
Copyright © 2020-2023  润新知