You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Cucumber结合Java传递非英文字符串参数时'é'显示为'?'如何解决

Java+Cucumber传递非英文字符参数乱码(特殊字符显示为?)修复方案

问题复现

使用Java结合Cucumber框架开展自动化测试时,feature文件中带法语特殊字符(如é)的字符串传入步骤定义方法后会被解析为?,例如传入字符串Décoration murale,控制台打印结果为D?coration murale,复现代码如下:

Feature文件代码

@tag
Feature: String Verifcations

    @PassNonEnglishCharacters
  Scenario Outline: Verify non English parameters
    Given I have my driver ready
    Then I print collection "<collection>" name on console

    Examples: 
      | collection          |
      | Décoration murale   |

步骤定义Java代码

@Then("^I print collection \"([^\"]*)\" name on console$")
public void i_print_collection_name_on_console(String collection) throws Throwable {
    System.out.println("Collection:" +collection);
}

异常控制台输出

Collection:D?coration murale

问题原因

乱码核心原因是测试全链路编码未统一为UTF-8,问题通常出在三个环节:

  • feature文件存储编码不是UTF-8
  • Cucumber解析资源文件时未指定UTF-8编码
  • JVM运行、控制台输出时默认使用系统非UTF-8编码(Windows系统默认GBK编码时极易出现该问题)

修复步骤

按以下顺序配置即可实现非英文字符正常传递识别:

  1. 修改feature文件编码为UTF-8
    IDEA环境下点击编辑器右下角的当前文件编码标识,选择UTF-8,弹出提示时选择Convert完成编码转换;Eclipse环境下右键feature文件,依次选择Properties -> Resource -> Text file encoding,选中UTF-8后保存文件。
  2. 配置构建工具编码参数
    • Maven项目:在pom.xml中为maven-surefire-test插件添加UTF-8编码配置:
      <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-surefire-plugin</artifactId>
          <version>3.0.0-M7</version>
          <configuration>
              <argLine>-Dfile.encoding=UTF-8</argLine>
              <encoding>UTF-8</encoding>
          </configuration>
      </plugin>
      
    • Gradle项目:在build.gradle中添加测试任务编码配置:
      test {
          systemProperty "file.encoding", "UTF-8"
      }
      
  3. 配置IDE全局编码与运行参数
    IDEA中打开Settings -> Editor -> File Encodings,将Global Encoding、Project Encoding、properties文件默认编码全部设置为UTF-8,勾选Transparent native-to-ascii conversion选项;在测试运行配置的VM options字段中添加-Dfile.encoding=UTF-8参数。
  4. 配置完成后重新运行测试,控制台将正常输出Collection:Décoration murale,非英文字符可被正确识别传递。

内容的提问来源于stack exchange,提问作者Tajinder Singh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 21:57:17