执行mvn clean test时终端特殊字符显示异常求助
Windows下IntelliJ IDEA执行Maven命令时特殊字符显示为问号的解决办法
在Windows系统的IntelliJ IDEA中执行命令 mvn clean test -D"cucumber.filter.tags=@OCR3" 时,终端输出的特殊字符(如ğ、ş、İ等)显示为问号。已在pom.xml中配置UTF-8编码及maven-surefire-plugin相关参数,同时项目encoding.xml也设置为UTF-8编码,但问题仍未解决。
已配置的相关文件
pom.xml 相关配置
<properties> <maven.compiler.source>8</maven.compiler.source> <maven.compiler.target>8</maven.compiler.target> <aspectj.version>1.8.10</aspectj.version> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> </properties> ... <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <version>2.22.2</version> <configuration> <argLine>-Dfile.encoding=${project.build.sourceEncoding}</argLine> <encoding>${project.build.sourceEncoding}</encoding> <includes> **/TestRunner*.java </includes> </configuration> </plugin> </plugins> </build>
Cucumber步骤类示例
@When("test") public void searchToSplitFind(int index){ System.out.println("ç,ğ,ş,ö,Ç,Ğ,Ş,İ,Ö"); }
encoding.xml 配置
<?xml version="1.0" encoding="UTF-8"?> <project version="4"> <component name="Encoding" defaultCharsetForPropertiesFiles="UTF-8"> <file url="file://$PROJECT_DIR$/src/main/java" charset="UTF-8" /> <file url="file://$PROJECT_DIR$/src/main/resources" charset="UTF-8" /> <file url="file://$PROJECT_DIR$/src/test/java" charset="UTF-8" /> <file url="file://$PROJECT_DIR$/src/test/java/features/OCR.feature" charset="UTF-8" /> <file url="PROJECT" charset="UTF-8" /> </component> </project>
执行命令后的终端输出
ç,?,?,ö,Ç,?,?,?,Ö
解决办法
1. 调整Windows终端编码
Windows默认终端编码为GBK,会将UTF-8输出解析为乱码。可临时执行以下命令切换编码为UTF-8:
chcp 65001
执行后再运行Maven命令即可正常显示特殊字符。若需永久生效:
- 打开命令提示符,右键标题栏选择「属性」
- 切换到「选项」标签,勾选「使用UTF-8编码」(Windows 10 1903及以上版本支持)
2. 显式指定命令行编码参数
在执行Maven命令时直接指定编码参数,避免配置传递问题:
mvn clean test -D"cucumber.filter.tags=@OCR3" -Dfile.encoding=UTF-8
3. 检查IntelliJ IDEA终端配置
确保IDEA内置终端使用UTF-8编码:
- 打开「File > Settings > Tools > Terminal」
- 勾选「Override IDE encoding」并选择「UTF-8」
- 重启IDEA后重新执行命令
4. 升级maven-surefire-plugin版本
旧版本插件可能存在编码处理缺陷,建议升级至3.2.5及以上版本,修改pom.xml配置:
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <version>3.2.5</version> <configuration> <argLine>-Dfile.encoding=${project.build.sourceEncoding}</argLine> <encoding>${project.build.sourceEncoding}</encoding> <includes> **/TestRunner*.java </includes> </configuration> </plugin>
内容的提问来源于stack exchange,提问作者CvMr
相关产品推荐
相关产品推荐

