微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Java Unicode翻译

如何解决Java Unicode翻译

该规范指出,Java编译器必须在执行其他任何操作之前将Unicode转义转换为相应的字符,以允许native2ascii代码存储或通过非通道进行发送时保护标识符中的非ASCII字符之类的东西(通过)。 8位干净。

该规则在全球范围内适用,特别是您甚至可以使用Unicode转义符来转义注释标记。例如,以下两个片段相同:

// Deal with opening and closing comment characters /*, etc.
myRisquéParser.handle("/*", "*/");

\u002F\u002F Deal with opening and closing comment characters /*, etc.
myRisqu\u00E9Parser.handle("/*", "*/");

如果编译器尝试在处理Unicode转义之前删除注释,则最终将剥离从/*, etc.到的所有内容handle("/*", "*/,从而

\u002F\u002F Deal with opening and closing comment characters ");

然后将其转义为一个单行注释,然后在解析的下一阶段将其删除。因此不会产生编译器错误或警告,而是会静删除整行代码

解决方法

我遇到以下代码:

public class LinePrinter {
    public static void main(String args[]) {
      //Note: \u000A is unicode for Line Feed
      char c=0x000A;
      System.out.println(c);
    }
}

由于完成了Unicode替换,因此无法编译。

问题是,为什么 注释//)不覆盖编译器完成的Unicode替换?我认为编译器应该先忽略注释,然后再执行代码翻译。

编辑:

不知道上面是否足够清楚。

我知道上面发生了什么,为什么会出错。我的期望是,在对代码进行任何翻译之前,编译器应忽略所有注释行。显然,这里不是这样。我期待这种行为的理由。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。