IntelliJ编译报错:字符É被识别为非法字符'‰'如何解决?
修复Java枚举含É字符的编译错误
问题场景
定义包含特殊字符的枚举类:
public enum Types { RÉSUMÉ }
Windows 10系统下用IntelliJ构建时,出现编译错误:
error: illegal character: '\u2030' RÉSUMÉ ^
项目此前可正常编译,JDK在11和17间切换后问题仍存在,且无法替换É字符。
核心原因
文件实际编码与IntelliJ、Javac编译时使用的编码不匹配,导致É被错误解析为Unicode字符\u2030。Windows默认编码为GBK,若项目编码设置变更为非UTF-8,就会触发该问题。
修复步骤
统一IntelliJ编码设置
打开File > Settings > Editor > File Encodings,将以下三项全部设置为UTF-8:- Global Encoding
- Project Encoding
- Default encoding for properties files
勾选Transparent native-to-ascii conversion后保存设置。
配置构建脚本编码
若使用Maven或Gradle,需在构建脚本中强制指定UTF-8编码:
Maven(pom.xml):<properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> </properties>Gradle(build.gradle):
tasks.withType(JavaCompile) { options.encoding = 'UTF-8' }转换文件编码为UTF-8
在IntelliJ中打开枚举类文件,查看右下角显示的当前文件编码。若不是UTF-8,点击编码选项选择Convert to UTF-8,保存文件。清理缓存并重建项目
执行Build > Clean Project清理旧编译缓存,再执行Build > Rebuild Project重新构建。
内容的提问来源于stack exchange,提问作者riorio
相关产品推荐
相关产品推荐

