在Java中,我了解到以下语法可用于提及键盘上没有的Unicode字符(例如,非ASCII字符):
(\u)(u)*(HexDigit)(HexDigit)(HexDigit)(HexDigit)
我的问题是:以上语法中(u)*的目的是什么?
我理解的一个用Java表示日元符号的用例是:
char ch = '\u00A5';
有趣的问题。JSL的3.3节说:
UnicodeEscape:
\ UnicodeMarker HexDigit HexDigit HexDigit HexDigit
UnicodeMarker:
u
UnicodeMarker u
转化为 \\u+\p{XDigit}{4}
和
如果合格的\后跟u,或不止一个u,并且最后一个u后不跟四个十六进制数字,则发生编译时错误。
因此,您是对的,u
反斜杠后可以有一个或多个。原因进一步说明:
Java编程语言指定了一种将Unicode编写的程序转换为ASCII的标准方法,该程序将程序更改为可以由基于ASCII的工具处理的形式。转换涉及通过添加额外的u将程序源文本中的所有Unicode转义转换为ASCII-
例如,\ uxxxx变为\ uuxxxx-同时将源文本中的非ASCII字符转换为每个均包含单个u的Unicode转义。 。Java编译器同样可以接受此转换后的版本,并且表示完全相同的程序。稍后可以通过将存在多个u的每个转义序列转换为具有更少u的Unicode字符序列,同时将具有单个u的每个转义序列转换为相应的单个Unicode字符,从此ASCII格式还原确切的Unicode源。
所以这个输入
\u0020ä
变成
\uu0020\u00e4
第一个uu
意思是“这是一个以unicode开头的转义序列”,第二个意思u
是“一个自动工具将非ASCII字符转换为unicode义。”
当您希望从ASCII转换回unicode时,此信息很有用:您可以还原尽可能多的原始代码。
问题内容: 在解析包含unicode转义序列的json字符串时,存在一个长期存在的错误。似乎需要修复该错误,这种错误可能很快就不会发生,因此我正在寻找一种在R中创建解决方法的方法,该方法在将序列提供给json解析器之前先取消序列化。 一些上下文:json数据始终是unicode,默认情况下使用,因此通常不需要转义。但是出于历史原因,json确实支持转义的unicode。因此json数据 和 是等效
注意,unicode是转义字符串 我的徒劳尝试到目前为止...
在JSON中,Unicode字符可以使用表示法进行转义。我假设显然是指十六进制的Unicode代码点。 但由于只有4位数字,这是否意味着无法转义
问题内容: 嗨,假设我有字符串 请注意转义的反斜杠。 如何将其转换为相应的unicode字符串? 问题答案: print ‘test \u0259’.decode(‘unicode-escape’) test ə
问题内容: 我有一个Unicode转义的字符串: 我想将此字符串转换为unicode非转义版本 我该怎么做呢? 问题答案: 对其进行编码(使用任何编解码器,utf-8可能都可以),然后使用对其进行解码:
我有一个统一码转义字符串: 我想将此字符串转换为unicode未转义的版本 我该怎么做?