首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  Java

为什么这个 utf8 编码后面会多个 0?

  •  
  •   codechaser · 84 天前 · 1333 次点击
    这是一个创建于 84 天前的主题,其中的信息可能已经有所发展或是发生改变。
            Charset utf8 = Charset.forName("utf8");
            String ss = "I love you";
            ByteBuffer buffer = utf8.encode(ss);
    
            byte[] bytes = buffer.array();
            for (byte b : bytes){
                System.out.println(b);
            }
    

    打印结果: 73 32 108 111 118 101 32 121 111 117 0 把"I love you"的'u'去掉得到: 73 32 108 111 118 101 32 121 111 没 0 啊?

    8 回复  |  直到 2018-07-04 15:55:35 +08:00
        1
    ThirdFlame   84 天前
    00 代表结束?
        2
    codechaser   84 天前
    @ThirdFlame 你好,我刚刚把'u'去掉了也没有 0 啊?
        3
    hand515   84 天前
    C 里的结束字符\0?
        4
    codechaser   84 天前
    @hand515 这是 java,java 有结束字符吗?
        6
    codechaser   84 天前
    @sagaxu Thanks!
        7
    joyme   84 天前
    ByteBuffer 有 limit 和 capacity 成员变量,limit 是结束位,capacity 是实际的容量。应该根据 limit 去读实际的内容。
        8
    lcdxiangzi   83 天前
    没有看懂为什么 ByteBuffer 要这样设计呢?有人可以指点一下吗?
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   755 人在线   最高记录 3762   ·  
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.1 · 20ms · UTC 19:03 · PVG 03:03 · LAX 12:03 · JFK 15:03
    ♥ Do have faith in what you're doing.
    沪ICP备16043287号-1