数据写入文件系统的时候出现中文字符乱码问题
具体问题描述:
将数据库中的数据取出来写入文件的时候出现中文字符乱码的问题
解决步骤和思路
- 检查乱码的地方使用的具体的方法步骤,通过调试检查判断是否是数据库的字符编码存在问题
- 通过测试发现存入数据库和从数据库中取出为String的时候都是正常的
- 研究后续操作
- 发现是写入文件的时候出现了乱码
private void writerJson(String jsonString, String savePath, String fileName) throws IOException {
String rootPath = "D://data";
File dirFile = new File(rootPath+ savePath);
if (!dirFile.exists() && !dirFile .isDirectory()) {
dirFile.mkdirs();
}
File localFile = new File(rootPath+ savePath + fileName);
if (!localFile.exists()) {
localFile.createNewFile();
}
FileOutputStream fos = new FileOutputStream(localFile);
fos.write(jsonString.getBytes());
fos.close();
}
发现是其中的jsonString.getBytes()存在问题。
因为在将字符串转换为字节时没有指定正确的字符编码。当调用 jsonString.getBytes() 时,它使用的是平台的默认字符编码,如果默认编码不是UTF-8,中文字符就会变成问号。
解决:
fos.write(jsonString.getBytes("UTF-8"));
将其指定为对应的字符编码以后就能解决了。

被折叠的 条评论
为什么被折叠?



