java中的随机转义序列
我正在玩java中的转义字符(反斜杠\)。当我得到\n或\t的长度(实际存储的字节数)时,我得到1,当我得到\n\t的长度时,我得到2,正如预期的那样 我的困惑始于打印:java中的随机转义序列,java,string,unicode,character-encoding,escaping,Java,String,Unicode,Character Encoding,Escaping,我正在玩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更改为164。另一个观察结果是,在前三个字符之后,它开始将每个
length of \123 -> 1
length of \177 -> 1
length of \178 -> 2
length of \190 -> 3
这是怎么发生的?如果它与ASCII或扩展ASCII相关,那么应该从164更改为164。另一个观察结果是,在前三个字符之后,它开始将每个字符的长度计算为1,例如,.\123456的长度为4
这与编码有关吗?我现在在IDE中设置了UTF-8
这可能是一个愚蠢的问题,但我对unicode或其编码没有详细的了解,有人能解释一下吗?当您使用\和一个数字时,您使用的是八进制数,当将八进制123转换为十六进制时,它是53,在十六进制中,在ASCII中是53 由于我们以8为基数,因此可以使用0到7之间的数字:
- 123,所有数字都可以被视为八进制
- 177,所有数字都可以看作八进制
- 178、1和7在8以下可转换,8在底座8外。由于这个原因,8作为一个角色被拆分
- 190,1可以是基数8的一部分,但9不包含so 9,并且他之后的所有数字都被视为字符
- 123456我们可以使用从0到177(7F)的八进制ASCII,因此123可以转换为一个字符