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

一个 Java 的编码问题

  •  
  •   zxCoder · 2020-03-25 22:57:57 +08:00 · 792 次点击
    这是一个创建于 1738 天前的主题,其中的信息可能已经有所发展或是发生改变。

    Java 的 char 是两个字节的 unicode 编码类型 所以我

    char a='中'
    

    然后用位运算转成两个 byte 是 78,45 但是如果我用

    byte[] cs=String.valueOf(b).getBytes("unicode");
    

    cs 的长度就变成 4 了,四个 byte 分别是-2 -1 78 45. 这是为什么,求解答

    2 条回复    2020-03-26 08:36:36 +08:00
    SoloCompany
        1
    SoloCompany  
       2020-03-26 00:33:20 +08:00   ❤️ 1
    unicode 等价于 utf-16 - 需要 bom
    不需要 bom 的是 utf-16be 或 utf-16le
    zxCoder
        2
    zxCoder  
    OP
       2020-03-26 08:36:36 +08:00
    @SoloCompany 学到了 感谢
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2812 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 13:19 · PVG 21:19 · LAX 05:19 · JFK 08:19
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.