java 字符串编码

来源:互联网 发布:大数据的特点包含哪些 编辑:程序博客网 时间:2024/04/28 00:07
new String(bytes[],"gb2312");把字节数组按"gb2312"解码成unicode字符串。

 String.getBytes("gb2312");把unicode字符串编码成gb2312的字节流。

1。java   .class类的编码为:unicode;

2。windows 默认的编码为:中文:gb2312;  英文:iso8859;

3。什么叫做解码:

     s = new String(bytes[],"iso8859_1");

      将键盘字节输入流中的每个字节读取到一个字节数组中,然后将字节数组中的数据当作某种本地字符集码转换成Unicode码的字符串,这个过程叫解码。

4。什么叫做编码:

String.getBytes("gb2312");java 类内的unicode 字符串的数字,转换成gb2312的编码的数字,并存放到字节数组中。

      将unicode码的字符串中的每个字符数字,转换成该字符在指定的字符集下的数字,叫做编码。

5、

  String s1 = "李辉";//s1------〉unicode编码,所有的程序中的字符串均为"unicode";
    s = new String(s1.getBytes("gb2312"),"iso8859_1");//s1 系统默认的gb2312编码,然后用
//    java.getBytes("gb2312")进行解码,
   str = new String(s.getBytes("iso8859_1"),"gb2312");
   System.out.println("=========="+str);

先将字节数组编码成字符串,以后还可以将这个字符串右反响编码成最初的字符数组。但先编码成字节数组,却比一定能够解码成最初的字符串。因为unicode按iso8859_1

编码后会存在字节丢失。

    System.out.println("=========="+new String(s1.getBytes("iso8859_1"),"gb2312"));

原创粉丝点击