intellij idea build时出现illegal character的解决

本文介绍了在项目中遇到中文字符导致的非法字符错误的原因及其解决方案。主要包括两种情况:一是代码文件保存时出现BOM头;二是文件编码不一致,如文件为GBK编码而编译器使用的是UTF-8。文中提供了去除BOM头的方法链接,并说明了如何在IDE中设置正确的文件编码。

碰到有中文的项目,有可能包名、类名或者方法名都会包含中文,这时在build的时候会出现 illegal charater 这样的错误。这种情况,可能有两种原因,

1. 保存代码文件的时候出现了BOM头

关于BOM头及去除方法,网上有非常多的文章,比如这里:http://my.oschina.net/xianggao/blog/79694


2. 编码问题。比如文件编码是GBK的,这时如果用默认的UTF-8去读,就会有问题,需要指定一下编译器的encoding。

方法也很简单,在settings-->compiler-->java compiler-->additional command line parameters中,添加-encoding GBK就可以了。


Output: error:exit status 1 main.java:1: error: illegal character: '#' # 验证安装 ^ main.java:2: error: class, interface, or enum expected xcode-select --install ^ main.java:4: error: illegal character: '\u251c' ├── HelloWorld ^ main.java:4: error: illegal character: '\u2500' ├── HelloWorld ^ main.java:4: error: illegal character: '\u2500' ├── HelloWorld ^ main.java:5: error: illegal character: '\u2502' │ ├── ViewController.swift # 主逻辑代码 ^ main.java:5: error: illegal character: '\u251c' │ ├── ViewController.swift # 主逻辑代码 ^ main.java:5: error: illegal character: '\u2500' │ ├── ViewController.swift # 主逻辑代码 ^ main.java:5: error: illegal character: '\u2500' │ ├── ViewController.swift # 主逻辑代码 ^ main.java:5: error: illegal character: '#' │ ├── ViewController.swift # 主逻辑代码 ^ main.java:6: error: illegal character: '\u2502' │ ├── Main.storyboard # 可视化界面设计 ^ main.java:6: error: illegal character: '\u251c' │ ├── Main.storyboard # 可视化界面设计 ^ main.java:6: error: illegal character: '\u2500' │ ├── Main.storyboard # 可视化界面设计 ^ main.java:6: error: illegal character: '\u2500' │ ├── Main.storyboard # 可视化界面设计 ^ main.java:6: error: illegal character: '#' │ ├── Main.storyboard # 可视化界面设计 ^ main.java:7: error: illegal character: '\u2502' │ └── Assets.xcassets # 图片资源 ^ main.java:7: error: illegal character: '\u2514' │ └── Assets.xcassets # 图片资源 ^ main.java:7: error: illegal character: '\u2500' │ └── Assets.xcassets # 图片资源 ^ main.java:7: error: illegal character: '\u2500' │ └── Assets.xcassets # 图片资源 ^ main.java:7: error: illegal character: '#' │ └── Assets.xcassets # 图片资源 ^ main.java:8: error: illegal character: '\u251c' ├── Products ^ main.java:8: error: illegal character: '\u2500' ├── Products ^ main.java:8: error: illegal character: '\u2500' ├── Products ^ main.java:9: error: illegal character: '\u2514' └── HelloWorldTests # 单元测试 ^ main.java:9: error: illegal character: '\u2500' └── HelloWorldTests # 单元测试 ^ main.java:9: error: illegal character: '\u2500' └── HelloWorldTests # 单元测试 ^ main.java:9: error: illegal character: '#' └── HelloWorldTests # 单元测试 ^ main.java:11: error: '.' expected import UIKit ^ main.java:12: error: ';' expected class ViewController: UIViewController { ^ main.java:12: error: class, interface, or enum expected class ViewController: UIViewController { ^ main.java:12: error: class, interface, or enum expected class ViewController: UIViewController { ^ main.java:14: error: class, interface, or enum expected @IBOutlet weak var myLabel: UILabel! // 关联Storyboard中的Label ^ main.java:27: error: illegal character: '#' button.addTarget(self, action: #selector(buttonClicked), for:... 这是上个代码的运行结果
07-14
Scanning for projects... [INFO] [INFO] ------------------------------------------------------------------------ [INFO] Building Spark 1.0-SNAPSHOT [INFO] ------------------------------------------------------------------------ [INFO] [INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ Spark --- [INFO] Using 'UTF-8' encoding to copy filtered resources. [INFO] skip non existing resourceDirectory /data/workspace/myshixun/Spark/src/main/resources [INFO] [INFO] --- scala-maven-plugin:3.1.5:add-source (scala-compile-first) @ Spark --- [INFO] Add Source directory: /data/workspace/myshixun/Spark/src/main/scala [INFO] Add Test Source directory: /data/workspace/myshixun/Spark/src/test/scala [INFO] [INFO] --- scala-maven-plugin:3.1.5:compile (scala-compile-first) @ Spark --- [WARNING] Expected all dependencies to require Scala version: 2.11.8 [WARNING] com.twitter:chill_2.10:0.8.0 requires scala version: 2.10.5 [WARNING] Multiple versions of scala libraries detected! [INFO] /data/workspace/myshixun/Spark/src/main/scala:-1: info: compiling [INFO] Compiling 6 source files to /data/workspace/myshixun/Spark/target/classes at 1761898075413 [ERROR] /data/workspace/myshixun/Spark/src/main/scala/EduCoder1.scala:3: error: illegal character '\u200b' [ERROR] ​ [ERROR] ^ [ERROR] /data/workspace/myshixun/Spark/src/main/scala/EduCoder1.scala:14: error: illegal character '\u200b' [ERROR] ​ [ERROR] ^ [ERROR] /data/workspace/myshixun/Spark/src/main/scala/EduCoder1.scala:19: error: illegal character '\u200b' [ERROR] ​ [ERROR] ^ [ERROR] /data/workspace/myshixun/Spark/src/main/scala/EduCoder1.scala:21: error: illegal character '\u200b' [ERROR] ​ [ERROR] ^ [ERROR] /data/workspace/myshixun/Spark/src/main/scala/EduCoder1.scala:32: error: illegal character '\u200b' [ERROR] ​ [ERROR] ^ [ERROR] /data/workspace/myshixun/Spark/src/main/scala/EduCoder1.scala:34: error: illegal character '\u200b' [ERROR] ​ [ERROR] ^ [ERROR] 6 errors found [INFO] ------------------------------------------------------------------------ [INFO] BUILD FAILURE [INFO] ------------------------------------------------------------------------ [INFO] Total time: 12.415 s [INFO] Finished at: 2025-10-31T08:07:57Z [INFO] Final Memory: 25M/832M [INFO] ------------------------------------------------------------------------ [ERROR] Failed to execute goal net.alchim31.maven:scala-maven-plugin:3.1.5:compile (scala-compile-first) on project Spark: wrap: org.apache.commons.exec.ExecuteException: Process exited with an error: 1 (Exit value: 1) -> [Help 1] [ERROR] [ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch. [ERROR] Re-run Maven using the -X switch to enable full debug logging. [ERROR] [ERROR] For more information about the errors and possible solutions, please read the following articles: [ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException
最新发布
11-01
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值