java - (Intellij) 编译时为 "unclosed character literal"和 "illegal character '\u00a 7'"

标签 java ascii

我正在尝试将“§”字符编译为 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 对整个源代码使用第一个文件的编码。


解决方案:

  • 确保所有文件均使用 UTF-8 编码;和/或
  • 使用javac -encoding UTF-8 ...作为commented通过 saka1029

关于java - (Intellij) 编译时为 "unclosed character literal"和 "illegal character '\u00a 7'",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68979187/

相关文章:

java - 为什么无参数构造函数会在无效状态下被实例化?

java - 在java中分割两个字母的字符串

php - 统计 ASCII 和 Unicode 混合字符串中的字符数

Java Pattern 导致堆栈溢出

java - 为什么 JMSAppender 使用同步发送?我们可以改变这一点吗?

c# - 如何在 c# 中将字符串从 utf8 转换(音译)为 ASCII(单字节)?

java - 在 Java 中读取法语字符

java - 如何计算字符串中包含重音符号的元音?

java - XDocReport Java API : problem converting ODT to PDF

python - 如何将一行输出作为字符串?