如何使javac忽略“编码UTF-8的不可映射字符”错误(注释中存在冒犯字符)

How to make javac to ignore "unmappable character for encoding UTF-8" error (offending char is in comments)

提问人:zhangt 提问时间:9/20/2023 更新时间:9/20/2023 访问量:26

问:

我正在使用纯javac编译一些遗留的java代码。操作系统是linux,JDK级别是: Java 版本“1.8.0_361” Java(TM) SE 运行时环境(内部版本 8.0.8.0 - pxa6480sr8-20230314_01(SR8)) 我收到以下错误: RpcApiUsingRPC.java:11121:错误:用于编码 UTF-8 的不可映射字符 * 将0x64写入两个 RPC 上的命令寄存器以设置 LED 闪烁。 我以前见过这个,但它们曾经是警告。但现在它是错误的,类没有被编译。 我无法更改所有源代码,所以我想知道是否有办法告诉javac忽略这些代码。违规字符在评论中。 任何提示都是值得赞赏的。

生成计算机系统的默认编码为 UTF-8。 LANG=en_US。UTF-8 格式 LC_CTYPE=“en_US。UTF-8 英寸 我认为javac应该知道这些是注释并忽略非utf-8字符。

编码 UTF-8 JAVAC

评论

0赞 Bergi 9/20/2023
你不需要“改变”源代码,你只需要正确编码。您可以在构建计算机上执行哪些操作?
0赞 zhangt 9/20/2023
当我说“我无法更改......”时,我的意思是我无法更改代码或文件的编码。我查看了几个文件的编码,发现编码是 Cp1252(默认为 eclipse)。我在 javac 上设置了 -encoding CP1252,这消除了一些错误,但即使文件具有 Cp1252 编码,其他错误仍然存在。同样,坏字符位于注释行中,这些注释行被较旧的 java 编译器忽略。这些是大量的遗留 java 文件,因此更改所有文件是不切实际的。
0赞 Bergi 9/20/2023
可以通过编程方式检测坏字符,因此无论文件数量如何,您都可以使用脚本更改它们

答: 暂无答案