java笔记--UTF-8与GBK

---恢复内容开始---

   java字符集中常用gbk和utf-8,那么他们之间的区别有哪些呢?

  关于汉字:

    UTF-8一个汉字占用3个字节;

   GBK或者GB2312一个汉字占用2个字节;

  关于英文字母或者数字:

   UTF-8一个英文字母或者一个数字占用2个字节;

  GBK或者GB2312一个英文字母或者数字占用1个字节;

  因此使用new String(tmp.getBytes("ISO-8859-1"), "UTF-8") 或者 new String(tmp.getBytes("ISO-8859-1"), "GBK")可以得到正确的中文,但是使用 new String(tmp.getBytes("GBK"), "UTF-8") 却不能将GBK转换成UTF-8。

 若需探个究竟,请跳转至 http://www.blogjava.net/pengpenglin/archive/2010/02/22/313669.html

 附:String str="嗨";
        String str2="a";
        String num="1";
        try {
            System.out.println("UTF-8 汉字:"+str.getBytes("utf-8").length);
            System.out.println("GBK汉字:"+str.getBytes("GBK").length);
            System.out.println("GB2312汉字:"+str.getBytes("gb2312").length);
            System.out.println("UTF-8 字符:"+str2.getBytes("utf-8").length);
            System.out.println("GBK 字符:"+str2.getBytes("GBK").length);
            System.out.println("GB2312 字符:"+str2.getBytes("gb2312").length);
            System.out.println("UTF-8 数字:"+num.getBytes("utf-8").length);
            System.out.println("GBK 数字:"+num.getBytes("GBK").length);
            System.out.println("GB2312 数字:"+num.getBytes("gb2312").length);
        } catch (UnsupportedEncodingException e) {
            
        }

输出:

UTF-8 汉字:3
GBK汉字:2
GB2312汉字:2
UTF-8 字符:1
GBK 字符:1
GB2312 字符:1
UTF-8 数字:1
GBK 数字:1
GB2312 数字:1

 

---恢复内容结束---

   java字符集中常用gbk和utf-8,那么他们之间的区别有哪些呢?

  关于汉字:

    UTF-8一个汉字占用3个字节;

   GBK或者GB2312一个汉字占用2个字节;

  关于英文字母或者数字:

   UTF-8一个英文字母或者一个数字占用2个字节;

  GBK或者GB2312一个英文字母或者数字占用1个字节;

  因此使用new String(tmp.getBytes("ISO-8859-1"), "UTF-8") 或者 new String(tmp.getBytes("ISO-8859-1"), "GBK")可以得到正确的中文,但是使用 new String(tmp.getBytes("GBK"), "UTF-8") 却不能将GBK转换成UTF-8。

 若需探个究竟,请跳转至 http://www.blogjava.net/pengpenglin/archive/2010/02/22/313669.html

 附:String str="嗨";
        String str2="a";
        String num="1";
        try {
            System.out.println("UTF-8 汉字:"+str.getBytes("utf-8").length);
            System.out.println("GBK汉字:"+str.getBytes("GBK").length);
            System.out.println("GB2312汉字:"+str.getBytes("gb2312").length);
            System.out.println("UTF-8 字符:"+str2.getBytes("utf-8").length);
            System.out.println("GBK 字符:"+str2.getBytes("GBK").length);
            System.out.println("GB2312 字符:"+str2.getBytes("gb2312").length);
            System.out.println("UTF-8 数字:"+num.getBytes("utf-8").length);
            System.out.println("GBK 数字:"+num.getBytes("GBK").length);
            System.out.println("GB2312 数字:"+num.getBytes("gb2312").length);
        } catch (UnsupportedEncodingException e) {
            
        }

输出:

UTF-8 汉字:3
GBK汉字:2
GB2312汉字:2
UTF-8 字符:1
GBK 字符:1
GB2312 字符:1
UTF-8 数字:1
GBK 数字:1
GB2312 数字:1

 

posted @ 2017-02-09 10:46  hq_sunshine  Views(950)  Comments(0)    收藏  举报