Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/317.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java中的随机转义序列_Java_String_Unicode_Character Encoding_Escaping - Fatal编程技术网

java中的随机转义序列

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。另一个观察结果是,在前三个字符之后,它开始将每个

我正在玩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。另一个观察结果是,在前三个字符之后,它开始将每个字符的长度计算为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可以转换为一个字符


您可以打印它们,您将看到\123在我的例子中打印S,代码是3个密码,稍后您将创建一个带有456的字符串,因此\123456是S456是的,我确实打印并观察了相同的内容,但我想了解背景中发生了什么。感谢您的详细解释,接受并投票通过。