IDEA开发中经常碰到这样的问题,在编译或运行java程序的时候提示错误:未结束的字符串。主要原因是IDEA编码与项目编码冲突,即UTF-8和GBK编码混淆使用,有可能是导入项目时初始状态的编码就不正确,也有可能在编码过程中对部分文件的编码与项目编码设置不一致导致。这时候比较有效的解决办法就是重新设置项目编码或特定文件编码。
1、报错示例
在使用IDEA开发项目的过程中,有时候在编译和运行项目的时候,编译或运行时会报如下错误,这个错误出现的时机有可能是在刚刚导入一个外来项目,也有可能前一天还正常运行的项目今天忽然就报错了,报错示例如下:
[ERROR] *.java:[38,27] 未结束的字符串字面值
[ERROR] *.java:[38,53] 需要 ';'
[ERROR] *.java:[41,12] 不是语句
[ERROR] *.java:[41,23] 需要 ';'
[ERROR] *.java:[41,26] 不是语句
[ERROR] *.java:[41,33] 需要 ';'
[ERROR] *.java:[53,27] 未结束的字符串字面值
[ERROR] *.java:[53,54] 需要 ';'
[ERROR] *.java:[56,4] 非法的表达式开始
[ERROR] *.java:[56,11] 需要 ';'
2、解决方案
- 在idea中,打开 File | Settings | Editor | File Encodings 菜单,将IDE Encoding 改为UTF-8,如下图所示,将Global Encoding、Project Encoding、Default encoding for properties files这几个选项编码都改为UTF-8,另外如果指定了特殊文件的编码格式,要视具体情况进行移除(做了前面的编码设置之后,如果还报错,就对指定文件的特殊编码设置进行移除,直至不报错为止)。
- 修改.idea文件夹下的encodings.xml,将编码格式也改为UTF-8。实际上了做了第一步之后,encodings.xml内部的编码应该都为UTF-8了。
- 一般情况下经过上述两步就可以了。如果启动项目发现仍然报之前的错,建议删除一下tomcat下发布的包,重新发布一下,再启动就可以了。
评论区