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

一般情况下,不论是创造字符串的字面量,还是使用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等

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值