`
vipshichg
  • 浏览: 261627 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Java中文字符所占的字节数

    博客分类:
  • java
阅读更多

 Java语言中,中文字符所占的字节数取决于字符的编码方式,一般情况下,采用ISO8859-1编码方式时,一个中文字符与一个英文字符一样只占1个字节;采用GB2312或GBK编码方式时,一个中文字符占2个字节;而采用UTF-8编码方式时,一个中文字符会占3个字节。我们可以通过String类的getBytes(String charsetName)方法来获取到字符串以指定编码方式编码后所得到的字节数组,然后字节数组的长度就是该字符串在指定编码方式下所占的字节数。下面为一个测试示例:

public static void main(String []args) throws UnsupportedEncodingException  {
// 运行结果:2
System.out.println("测试".getBytes("ISO8859-1").length);
// 运行结果:4
System.out.println("测试".getBytes("GB2312").length);
// 运行结果:4
System.out.println("测试".getBytes("GBK").length);
// 运行结果:6
System.out.println("测试".getBytes("UTF-8").length);
}

  注意:String类的不带参数的getBytes()方法会以程序所运行平台的默认编码方式为准来进行转换,在不同平台下就会有不同的结果,因此建议使用指定编码方式的getBytes(String charsetName)方法。

4
0
分享到:
评论
3 楼 moshalanye 2014-10-11  
虚拟机语言一般在内存中会对字符进行固定编码的表达,所以会存在内码。
C语言则需要在编译期间决定是采用unicode还是mutibyte(不区分编码来处理byte)。

理解C语言的  unicode2mutibyte 库函数 及 mutiby2unicode 有利于理解字符和字节间的处理。
2 楼 Isak_mi 2014-03-02  
如何测试这个代码?
1 楼 sayji 2014-03-01  
utf8 有占3字节,也有4字节的。根本不用写代码查,用百度或google查个字就能看到--如百度中地址中有一参数为wd(google中为"q"),其值就是你查的那字的编码,每一字節的編碼使用“%”隔开,如“一”,就会显示"%E4%B8%80"。

相关推荐

Global site tag (gtag.js) - Google Analytics