Java 读取文件,字符串部分乱码是怎么回事儿?

2019-07-15 18:44:02 +08:00
 lixyz

从哔哩哔哩上下载了一些视频,因为下载下来文件名是 av 号,同时还下载下一个 info 文件,然后 info 文件中是一个 json,里面包含了视频的文件名,所以想着写个工具把 json 里面的文件名提取出来然后重命名文件

读取文件文件时进行了 UTF-8 转码 然后发现一个问题,gson 解析之后,文件名是类似于这样的:

163-尚硅??-老韩图解 Java 数据结构和算??-动态规划算法和 KMP 算法小结

部分字会变成问号,请问这是什么情况?

1567 次点击
所在节点    问与答
3 条回复
OctopusGO
2019-07-15 18:58:11 +08:00
不知道,找到原因 @我
jifengg
2019-07-16 10:36:38 +08:00
1.先确定 info 文件里面有没有乱码,以及编码是不是 utf8 的。
2.确定 info 里面有没有不可见的字符。
3.如果 info 文件一切正常,那就看你解析 json 的方式了。
4.再看看有没有 emoji 之类的。
5.不行的话自己再手写一个 json,自己解析看看有没有问题。
wdmx007
2019-07-16 17:57:25 +08:00
你是不是用的 FileReader,这个默认不是 utf8 编码的,建议使用 FileInputStream 直接读 byte 然后转 utf8

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/583195

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX