在Java中,我了解到以下语法可用于提及键盘上没有的Unicode字符(例如,非ASCII字符):
(\u)(u)*(HexDigit)(HexDigit)(HexDigit)(HexDigit)
我的问题是:
以上语法中(u)*的目的是什么?
我理解的一个用Java表示日元符号的用例是:
char ch = '\u00A5';
最佳答案
有趣的问题。 Section 3.3 of the JSL says:
UnicodeEscape:
\ UnicodeMarker HexDigit HexDigit HexDigit HexDigit
UnicodeMarker:
u
UnicodeMarker u
转换为
\\u+\p{XDigit}{4}
和
没错,反斜杠后可以有一个或多个
u
。原因进一步说明:所以这个输入
\u0020ä
变成
\uu0020\u00e4
第一个
uu
的意思是“这是一个以unicode开头的转义序列”,而第二个u
则是“一个自动工具将非ASCII字符转换为unicode转义”。当您希望从ASCII转换回unicode时,此信息很有用:您可以还原尽可能多的原始代码。
关于java - Java中的Unicode转义语法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21522770/