java获取本地文件转json,出现的乱码问题

    最近项目中遇到一个问题,RPC远程调用的接口的时候,接口报错,导致录播服务数据库没有数据,影响了正常业务的运行,急需解决,方案就是制作本地数据,导入数据。


本地文件是txt文件格式,读取本地文件代码:

BufferedReader brname = new BufferedReader(new InputStreamReader(new FileInputStream(new File("D://2.txt")),"UTF-8"));
String sname = null;
StringBuffer sb = new StringBuffer();
while ((sname = brname.readLine()) != null) {
     sb.append(sname);
}
brname.close();

System.out.println(sb.toString());

结果很可惜,出现乱码,数据如下:

        "video_name":"2018�����һ�ڳ�����ӣ�2��",
        "stop_record":1531101482,
        "audio_channel":"",
        "audio_format":"",
        "video_bit_rate":"1139449",
        "duration":"7108.358",
        "record_flv":"http://xcutvod.buka.tv/live-1466480_1466481--20180709075935.flv",
        "vid":1466481,
        "teacher":"�Ż�",
    


明明将本地文件打开是没有乱码的,为何读取却乱码了,原因在于本地文件的格式不是UTF-8?如果设置成为UTF-8文件格式那是不是没问题?

使用IDEA开发工具,设置文本为utf-8格式的过程:

java获取本地文件转json,出现的乱码问题_第1张图片

java获取本地文件转json,出现的乱码问题_第2张图片


再将你的文本复制进去就行了!

java获取本地文件转json,出现的乱码问题_第3张图片


这样格式就是UTF-8的文件格式了。在执行刚才代码,读取新的文本文件,测试就没有乱码了。

        "video_name":"2018年暑假一期初三尖子(2)",
        "stop_record":1531101482,
        "audio_channel":"",
        "audio_format":"",
        "video_bit_rate":"1139449",
        "duration":"7108.358",
        "record_flv":"http://xcutvod.buka.tv/live-1466480_1466481--20180709075935.flv",
        "vid":1466481,
        "teacher":"张欢",
        "is_slice":1,
        "ExpiredTime":"0001-01-01T00:00:00Z",
        "datasize":"1012452159",
        "id":"1466480",
        "tag":"media",
        "email":"[email protected]",

为什么那样设置文本就是utf-8格式了,原因就是我的idea设置的编码就是UTF-8。



你可能感兴趣的:(javase)