【发布时间】:2016-05-04 02:08:20
【问题描述】:
我了解 Java 对 String 的内部表示是 UTF-16. What is java string representation?
另外,我知道在 UTF-16 字符串中,每个“字符”都使用一个或两个 16 位代码单元进行编码。
但是,当我调试以下 java 代码时
String hello = "Hello";
变量hello是一个5字节数组0x48、0x101、0x108、0x108、0x111 这是“你好”的ASCII。
这怎么可能?
【问题讨论】:
-
你如何调试这个?它只是一个字符数组。
-
你确定这不是你看到的变量名吗?
-
@Fildor 0x48 具有“H”字符表示,而不是“h”。
-
@MarounMaroun 好点...
-
你怎么知道的? IntelliJ IDEA 调试器不显示用于存储
char值的字节数。
标签: java string encoding utf-16