V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
Sponsored by
LinkedIn
不坐班的神仙工作 · 去任何你想去的地方远程,赚一线城市的工资
2000 个不用出门 Social 的全球远程工作,帮助 V2EX 的小伙伴开启全新的工作方式。
Promoted by LinkedIn
fangch
V2EX  ›  问与答

请问一下 v 友,这是 Linux 上什么编码

  •  
  •   fangch · 72 天前 · 713 次点击
    这是一个创建于 72 天前的主题,其中的信息可能已经有所发展或是发生改变。

    背景:java 项目部署在 linux 上,读取 linux 上的中文文件目录
    问题:读取到的中文打印出来对照的是:专业技能提升培训->专业房能提升培謿
    这是 linux 上的什么编码导致的,怎么只有个别字变了,有 v 友遇到过这种问题吗,帮忙看看?

    5 条回复    2022-07-19 16:43:05 +08:00
    charlie21
        1
    charlie21  
       72 天前 via iPhone   ❤️ 1
    linux 里需要安装 wenquanyi 中文字体
    ByteCat
        2
    ByteCat  
       72 天前   ❤️ 1
    语言包不完整? dpkg-reconfigure locales 试试
    fangch
        3
    fangch  
    OP
       71 天前
    @charlie21 谢谢,安装过了字体之后,还是没有变,不知道啥原因
    @ByteCat 语言包应该是没有问题得,直接打印出中文是没有问题得
    ysc3839
        4
    ysc3839  
       71 天前   ❤️ 1
    感觉是你代码问题,UTF-16 的原始数据被当成了某个双字节编码处理了一遍。
    原字符串使用 UTF-16 编码的数据是 13 4E 1A 4E 80 62 FD 80 D0 63 47 53 F9 57 AD 8B
    新字符串使用 UTF-16 编码的数据是 13 4E 1A 4E 3F 62 FD 80 D0 63 47 53 F9 57 3F 8B
    可用看到是某个字节被替换成了 3F ,而 3F 是 ASCII 下的问号“?”。
    fangch
        5
    fangch  
    OP
       71 天前
    @ysc3839 谢谢解答,但是代码是很普通得就是 File[] fs = file.listFiles()列出中文目录<br>
    结果就变成这样得;,当前得编码 System.getProperty("file.encoding")是 GBK,其他得没有啥了
    关于   ·   帮助文档   ·   API   ·   FAQ   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2858 人在线   最高记录 5497   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 41ms · UTC 13:06 · PVG 21:06 · LAX 06:06 · JFK 09:06
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.