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

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

  •  
  •   fangch · 2022-07-18 18:54:22 +08:00 · 1164 次点击
    这是一个创建于 860 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    5 条回复    2022-07-19 16:43:05 +08:00
    charlie21
        1
    charlie21  
       2022-07-18 20:12:58 +08:00 via iPhone   ❤️ 1
    linux 里需要安装 wenquanyi 中文字体
    ByteCat
        2
    ByteCat  
       2022-07-18 20:50:12 +08:00   ❤️ 1
    语言包不完整? dpkg-reconfigure locales 试试
    fangch
        3
    fangch  
    OP
       2022-07-19 11:02:47 +08:00
    @charlie21 谢谢,安装过了字体之后,还是没有变,不知道啥原因
    @ByteCat 语言包应该是没有问题得,直接打印出中文是没有问题得
    ysc3839
        4
    ysc3839  
       2022-07-19 15:47:44 +08:00   ❤️ 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
       2022-07-19 16:43:05 +08:00
    @ysc3839 谢谢解答,但是代码是很普通得就是 File[] fs = file.listFiles()列出中文目录<br>
    结果就变成这样得;,当前得编码 System.getProperty("file.encoding")是 GBK,其他得没有啥了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5669 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 32ms · UTC 06:46 · PVG 14:46 · LAX 22:46 · JFK 01:46
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.