java中字符串乱码问题解决方案

在java程序开发中经常会遇到字符串乱码,下面提供的三种方法,基本能解决常见的乱码问题。

1.乱码原因

乱码问题的产生,最根本的原因就是使用错误的字符集解码字节流或者将给定的字符串用错误的字符集编码成错误字节流造成的。例如”中文”两个汉字,如果用 ISO8859-1字符集将其编码为字节流,因为这个字符集不支持中文,所以就会出错,输出结果为3f3f,其意义就是??。再例如”中文”二字的GBK 的字节流为d6 d0 ce c4,可是我们要是用不兼容的字符集去解码,例如用ISO8859-1或者UTF-8,这随后产生的字符串就是乱码,或者是其他的某个字符。

从开发Java程序到运行Java程序的过程中都存在着编码问题,所以要想避免乱码产生,就必须了解在其中任何时候的编码处理的情况。


2.存储到MySQL字符串乱码

先改变该字段的编码方式,一般设置为“UTF-8”;如果不行,将整个表的编码设置成“UTF-8”;仍然不起作用的话,重装MySQL,在装的过程中,对于“MySQL Server Instance Configuration”要选“Best Support For Multilingualism”,这样就可以解决字符串在数据库乱码的问题。其他数据库可以参考此过程进行处理。


3.输出字符串乱码

在输出的过程中将字符串转码成和原字符串相同的编码

byte[] bytes={};

String str=new String(bytes,"UTF-8");


4.读取文件字符串乱码

在读取过程中直接将字节流转码

BufferedReader in = new BufferedReader(new InputStreamReader(new FileInputStream(file),"UTF-8"));
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值