【发布时间】:2020-11-19 10:49:03
【问题描述】:
我正在使用 java 中的转义字符(反斜杠 \)。当我得到 \n 或 \t 的长度(实际存储的字节数)时,我得到 1,当我得到 \n\t 的长度时,我得到 2,正如预期的那样。
当我打印时,我的困惑就开始了:
length of \123 -> 1
length of \177 -> 1
length of \178 -> 2
length of \190 -> 3
这是怎么回事?如果它与 ASCII 或扩展 ASCII 相关,那么这应该从 164 更改。另一个观察是在前三个字符之后它开始将每个字符计为 1 个长度,例如\123456 的长度为 4。
它与编码有关吗?我现在在我的 IDE 中设置了 UTF-8。
这可能是一个愚蠢的问题,但我不了解 unicode 或其编码的详细知识,有人可以解释一下吗?
【问题讨论】:
-
你可以打印它们,你会看到 \123 在我的例子中打印 S,代码是 3 个密码,稍后你将创建一个 456 的字符串,所以 \123456 是 S456
-
是的,我确实打印并观察到了相同的情况,但我想了解后台发生的情况。
标签: java string unicode character-encoding escaping