Java 中的“无法映射的编码字符”警告

2022-08-31 08:28:40

我目前正在处理一个Java项目,该项目在编译时发出以下警告:

/src/com/myco/apps/AppDBCore.java:439: warning: unmappable character for encoding UTF8
    [javac]         String copyright = "� 2003-2008 My Company. All rights reserved.";

我不确定SO将如何在日期之前渲染角色,但它应该是一个版权符号,并在警告中显示为钻石中的问号。

值得注意的是,该字符正确出现在输出工件中,但警告是令人讨厌的,并且包含此类的文件可能有一天会被文本编辑器触摸,该编辑器错误地保存了编码...

如何将此字符注入“版权”字符串中,以便编译器满意,并且符号保留在文件中而不会出现潜在的重新编码问题?


答案 1

尝试使用:javac编码ISO-8859-1 file_name.java


答案 2

使用“\uxxxx”转义格式。

根据维基百科,版权符号是unicode U + 00A9,所以你的行应该写成:

String copyright = "\u00a9 2003-2008 My Company. All rights reserved.";

推荐