java 中的默认字符集的

  有时,我们会碰到这样一些代码:依赖平台的默认字符集。

  在windows上开发项目,我们使用的操作系统windows一般默认字符集是GBK;但是部署到linux上就会出现乱码问题。这个时候就蛋疼了,假如A系统希望linux平台的默认字符集是UTF-8,B系统则希望linux平台的默认字符集是GBK,怎么搞?比如下面的一段代码:

/**
* 字节数组转化为字符串 
*/
public String bytesToString(byte[] bytes) {
    // 错误写法,依赖于平台的默认字符集,换个平台可能就是乱码
    // return new String(bytes);
    
    // 正确写法
    return new String(bytes, "UTF-8");
}

/**
* 字符串转化wield字节数组
*/
public bytes[] StringToBytes(String content) {
    // 错误写法,依赖于平台的默认字符集,换个平台得到的字节数组可能就不正确了
    // return content.getBytes();
    
    // 正确写法
    return content.getBytes("UTF-8");
}


还有就是从网络接口读取字节流转化为字符流,最好指定字符集。

好的编程习惯就是:不要让代码依赖于平台的默认字符集,指定一个明确的字符集,当然两个方向转化的字符集要一致(字符流到字节流,字节流到字符流)。

转载于:https://my.oschina.net/u/2007041/blog/392859

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值