V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
lixyz
V2EX  ›  问与答

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

  •  
  •   lixyz · 2019-07-15 18:44:02 +08:00 · 1651 次点击
    这是一个创建于 1961 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

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

    OctopusGO
        1
    OctopusGO  
       2019-07-15 18:58:11 +08:00 via Android
    不知道,找到原因 @我
    jifengg
        2
    jifengg  
       2019-07-16 10:36:38 +08:00
    1.先确定 info 文件里面有没有乱码,以及编码是不是 utf8 的。
    2.确定 info 里面有没有不可见的字符。
    3.如果 info 文件一切正常,那就看你解析 json 的方式了。
    4.再看看有没有 emoji 之类的。
    5.不行的话自己再手写一个 json,自己解析看看有没有问题。
    wdmx007
        3
    wdmx007  
       2019-07-16 17:57:25 +08:00
    你是不是用的 FileReader,这个默认不是 utf8 编码的,建议使用 FileInputStream 直接读 byte 然后转 utf8
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1066 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 22:34 · PVG 06:34 · LAX 14:34 · JFK 17:34
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.