数据写入文件系统的时候出现中文字符乱码问题

数据写入文件系统的时候出现中文字符乱码问题

具体问题描述:

将数据库中的数据取出来写入文件的时候出现中文字符乱码的问题

解决步骤和思路

  1. 检查乱码的地方使用的具体的方法步骤,通过调试检查判断是否是数据库的字符编码存在问题
  2. 通过测试发现存入数据库和从数据库中取出为String的时候都是正常的
  3. 研究后续操作
  4. 发现是写入文件的时候出现了乱码
    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"));

将其指定为对应的字符编码以后就能解决了。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值