gpt4 book ai didi

Java UTF-8 差异

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:30:07 24 4
gpt4 key购买 nike

JavaDoc 说 "The null byte '\u0000' is encoded in 2-byte format rather than 1-byte, so that the encoded strings never have embedded nulls."

但这究竟意味着什么?在这种情况下,什么是嵌入式空值?我正在尝试将 Java 保存的 UTF-8 字符串转换为“真正的”UTF-8。

最佳答案

在 C 中,字符串以字节值 00 结束。

这里的问题是,您可以在 Java 字符串中有 0 个字符,但是为了避免在将字符串传递给 C(所有 native 方法都写在其中)时发生混淆,字符被编码为另一个字符方式,即为两个字节

11000000 10000000

(根据 javadoc)这两个实际上都不是 00。

这是解决您无法轻易更改的问题的技巧。

另请注意,这是有效的 UTF-8 并正确解码为 00。

关于Java UTF-8 差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6439766/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com