您的位置:首页 > 其它

怎样使用指定的字符集创造String对象

2016-03-06 20:12 204 查看
一般情况下,不论是创造字符串的字面量,还是使用String的构造方法创造字符串对象,JVM会自动的帮助开发者用平台默认的字符集进行构造。例如下面的代码:

String a="中文";

String b=new String("中文");

对于大多数中文系统来说,平台的默认字符集都是GBK或GB2312.当程序员用输入法 打印这些中文的时候,它的编码其实是按照”GBK“或”GB2312“进行的,但是在编译的时候,JVM会把这些字符编码按照Unicode进行重新编码,然后保存在class文件中。

如果一个字符数据不是来自于平台手动输入,而是通过其他的途径传入的,例如:Web请求参数,那么,这些字符编码就可能不是平台默认的,那么应该如何处理呢?这里就需要使用String带有字符编码的构造方法了:

String a="中文";

String b=new String(a.getBytes(),"GBK");

String c=new String(a.getBytes();"UTF-8");

以上代码的b和c字符串就是按照指定的字符集重新创建的字符串对象,如果a变量的"中文"两个字符是用GBK编码的话,那么c变量就会出现编码错误,打印出来一连串的问号。

带字符集的String的构造方法往往是解决字符乱码的一种手段。

使用带有字符集编码的String的构造方法就可以用指定的字符集来重新创造字符串对象,该方法的参数包括两个:一个是byte数组;另一个是字符集编码的字符串形式,如:utf-8、GBK、ISO-8859-1等
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: