一个 Java 的编码问题

2020-03-25 22:57:57 +08:00
 zxCoder

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

char a='中'

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

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

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

792 次点击
所在节点    问与答
2 条回复
SoloCompany
2020-03-26 00:33:20 +08:00
unicode 等价于 utf-16 - 需要 bom
不需要 bom 的是 utf-16be 或 utf-16le
zxCoder
2020-03-26 08:36:36 +08:00
@SoloCompany 学到了 感谢

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/656214

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX