我正在尝试将“§”字符编译为 char (char c = '§'
),但是当我尝试构建时,它在构建输出中显示“未封闭的字 rune 字”
”和“非法字符:'\u00a7'
”,后跟“未封闭字 rune 字
”。如果我将字符放入字符串中(String s = "§"
),它就可以正常工作。但是当我将其打印到控制台时,它会打印“”字符(它不应该)
在另一个java项目中,我可以正常使用'§'字符并正常编译,并且它按预期工作;将其打印到控制台不会显示任何内容(这是正常的,因为它用作为文本着色的转义字符)。该项目(以及当前项目)在intellij中不使用“BOM”,并且它们都使用UTF8编码
有人知道如何解决这个问题吗?谢谢:)
最佳答案
我如何重现该错误:
- 使用 UTF-8 编码(默认)创建了一个新的
Test.java
- 使用
char c = '§';
添加 main 并打印 - 运行
Test.main()
没有错误,正如预期的那样。
所以我尝试了:
- 创建了第二个文件
Test1.java
并更改为ISO-8859-1
编码 - 仅使用打印命令添加了 main 方法
- 运行
Test1.java
这次我收到了报告的错误,但是对于Test.java
(仍然编码为UTF-8)
看起来 IDEA 对整个源代码使用第一个文件的编码。
解决方案:
关于java - (Intellij) 编译时为 "unclosed character literal"和 "illegal character '\u00a 7'",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68979187/