Java编码中遇到的中文乱码问题

碰到过不少乱码的情况,做个小结。

文件方面乱码:

项目导入导出到不同的开发环境中出现中文乱码。这种还好处理,就是根据开发环境进行相应的配置,比如说单个文件的编码方式,项目整体的编码方式,或整个开发环境的编码方式。

程序导致的乱码:

碰到这个就有点广泛,不同的开发语言有不同的,编码设置方式,一般来说,注意一下,然后设置就行。

比如说:(简单说明,具体问题具体看)

response.setCharacterEncoding("UTF-8");

但最近一个项目中遇到的乱码实在是搞得我头大,因为是个web项目,被告知可能还有tomcat 的问题,但是改了tomcat的server.xml文件也是没有用。

后来经过检查发现是程序的问题,从数据库中取出(经过base64编码的)字符串再解码出来产生了中文乱码。

遇到这种问题,一开始其实是无从判断的,因为项目并不是一个人开发的,你根本不清楚他编码时候用的编码方式。

 String value = dbi.getStrValue("value");
 if (data.getBase64() != 0) {
     value = new String(Base64.getDecoder().decode(value));
}

上述方法,Base64解码出来的是字节数组,在转为字符串输出时,需要指定一个字符解码方式。

value = new String(Base64.getDecoder().decode(value), "utf-8");

还有其他乱码,以后补充修改。

(如果看官有不同想法建议,欢迎评论指正!)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值