gpt4 book ai didi

java - 日本字符 - 字节长度

转载 作者:行者123 更新时间:2023-12-02 20:05:23 26 4
gpt4 key购买 nike

日本字符的长度与美国字符的长度不同。

示例:

String str = new String("アサヒコ");
int numBytes = str.getBytes().length; 12

for Us:
String str = new String("san");
int numBytes = str.getBytes().length; 3

我应该如何获得与美国字符完全相同的日本字节长度。

对于单个 JAPAN 字符,为什么它给出 2 个字节,有时它为单个 JAPAN 字符给出 3 个字节。

请告诉我如何获取java中日本字符的字节值

最佳答案

什么getBytes不带参数调用返回将取决于您的系统。从该文档:

Encodes this String into a sequence of bytes using the platform's default charset, storing the result into a new byte array.

例如,如果您的系统的默认编码是 UTF-8,则很可能需要四个字节来编码单个日文字符,但通常只需要一个字节来编码单个美国英语字母字符。更多内容请参见the Unicode FAQ .

getBytes 的重载,可让您指定要使用的编码。

更多背景:

Java的字符串是represented using UTF-16 (这就是为什么 Java 可以使用整个 Unicode,即使 char 只有 16 位宽)。在 UTF-16 中,可能需要多个 char 来表示一个“字符”(用 Unicode 术语来说,可能需要多个代码单元来表示一个代码点)。如果您想访问字符串中的代码点数量,可以使用 codePointCount ;要访问代码点,您可以使用 codePoints溪流。 String还有一些其他与代码点相关的方法,只需在 JavaDoc 中搜索“代码点”即可。

所有与String相关的内容,特别是;一旦转换为字节数组,您可能会使用 UTF-16 以外的编码。

关于java - 日本字符 - 字节长度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49727145/

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