有时候工作中会遇到别人发给你的文件在你这边打开乱码的情况,一般来说原因是文件创建时的编码和自己打开的编码格式不一致造成的,解决乱码通用的方法有以下三步:
- 从文件源头方获取对方的编码
- 将文件内容以getBytes()方法转为对应的字节序列,getBytes()方法内传对方的编码
- new一个String,把字节序列传进去,第二个参数填我们要转成的编码
//乱码内容
String info="krre030300030322";
//以对方的编码格式转为字节数组
//方式一
info.getBytes(Charset.forName("UTF-8"));
//方式二
try {
info.getBytes("UTF-8");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
//方式三
info.getBytes(StandardCharsets.UTF_8);
//转换
byte[] srcByte = info.getBytes(StandardCharsets.UTF_8);
String dest = new String(srcByte, Charset.forName("GBK"));
另附Linux系统中文乱码无法识别问题的解决方案
cat << EOF > /root/.vimrc
:set encoding=utf-8
:set fileencodings=ucs-bom,utf-8,cp936
:set fileencoding=gb2312
:set termencoding=utf-8
EOF