相关疑难解决方法(0)

实际使用中最常见的非BMP Unicode字符是什么?

根据您的经验,到目前为止,哪些Unicode字符,代码点,BMP(基本多语言平面)之外的范围是最常见的?这些是需要UTF-8中的4个字节或UTF-16中的代理项.

我希望答案是在名称中使用的中文和日文字符,但不包括在最广泛的CJK多字节字符集中,但在我最常用的项目上,英文维基词典,我们发现哥特字母是到目前为止更为常见.

UPDATE

我写了几个软件工具来扫描整个维基百科上的非BMP字符,我惊讶地发现,即使在日语维基百科中,哥特字母也是最常见的.在中文维基百科中也是如此,但它也有许多中文字符被使用多达50或70次,包括"",""和"".

unicode codepoint cjk surrogate-pairs astral-plane

101
推荐指数
3
解决办法
2万
查看次数

Java中String的字符编码是什么?

我对Java中的字符串编码感到困惑.我有一些问题.如果您知道答案,请帮助我:

1)内存中Java字符串的本机编码是什么?我写的String a = "Hello"时候会存储哪种格式?由于Java与机器无关,我认为系统不会进行编码.

2)我在网上读到"UTF-16"是默认编码,但我感到困惑,因为我写的时候说int a = 'c'我得到了ASCII表中字符的编号.那么ASCII和UTF-16是一样的吗?

3)我还不确定内存中字符串的存储取决于:操作系统,语言?

java string character-encoding

45
推荐指数
3
解决办法
6万
查看次数

为什么带有UTF-8的新字符串包含更多字节

byte bytes[] = new byte[16];
random.nextBytes(bytes);
try {
   return new String(bytes, "UTF-8");
} catch (UnsupportedEncodingException e) {
   log.warn("Hash generation failed", e);
}
Run Code Online (Sandbox Code Playgroud)

当我使用给定的方法生成一个String时,当我应用string.getBytes().length它时,它会返回其他值。最大值为32。为什么一个16字节的数组最终会生成另一个大小的字节字符串?

但是,如果我这样做,string.length()它会返回16。

java string byte

3
推荐指数
1
解决办法
3197
查看次数