Спецификация языка Java утверждает, что escape-последовательности внутри строк являются «обычными» C, такими как \n
и \t
, но они также укажите восьмеричные escape-последовательности от \0
до \377
. В частности, JLS утверждает:
OctalEscape:
\ OctalDigit
\ OctalDigit OctalDigit
\ ZeroToThree OctalDigit OctalDigit
OctalDigit: one of
0 1 2 3 4 5 6 7
ZeroToThree: one of
0 1 2 3
это означает, что что-то вроде \4715
является недопустимым, несмотря на то, что оно находится в пределах диапазона символов Java (поскольку символы Java не являются байтами).
Почему в Java есть это произвольное ограничение? Как вы собираетесь указывать восьмеричные коды для символов, превышающих 255?