jav*_*top 5 java unicode javacc utf-16
我指的是XML 1.1规范.
看看定义NameStartChar:
NameStartChar ::= ":" | [A-Z] | "_" | [a-z] | [#xC0-#xD6] | [#xD8-#xF6] | [#xF8-#x2FF] | [#x370-#x37D] | [#x37F-#x1FFF] | [#x200C-#x200D] | [#x2070-#x218F] | [#x2C00-#x2FEF] | [#x3001-#xD7FF] | [#xF900-#xFDCF] | [#xFDF0-#xFFFD] | [#x10000-#xEFFFF]
如果我正确地解释了这一点,那么最后一个range(#x10000-#xEFFFF)超出了Java 类型的UTF16范围char.所以一定是UTF32,对吧?所以,我需要检查对char这个范围的对,而不是单个chars,对吧?
我的问题是:
\u10000和\uEFFFF谢谢!
注意: 别担心,我不是在尝试编写自己的XML解析器.
编辑: 我正在编写一个解析器,它将检查来自其他(非XML)文本格式的文本输入是否与有效的XML名称匹配.
看一下Character.toCodePoint(char, char)它将代理对转换为全范围代码点。String.codePointAt可能对你也很有用。
字符和字符串中还有许多其他代理支持。要确切地知道要调用哪些方法,我们需要了解您的具体情况。