经常遇到编码乱码问题,记录以下解决乱码需要注意的事项:
关键是要保持编码的一致性
1、如果代码没有设置编码,则默认使用系统编码
System.out.println( System.getProperty("file.encoding"));
因为java的可移植性,有时候在本地跑的时候使用的系统编码是GBK,然后部署到linux服务器时时utf-8,会导致乱码
2、如果明确了需要的编码,可以对变量进行解码然后重新编码
//用默认字符编码解码字符串。
byte[] bs = reqdata.getBytes("GB18030");
//用新的字符编码生成字符串
reqdata= new String(bs, "GB18030");
3、后续的处理都要保持编码的一致性