2

我想发送一个 Unicode 字符串作为请求参数,如下所示:

{"mobile": "۹۸.۹۱۲۳۴۳۰۴۱۲"}

但空手道这样发送它: {"mobile": "??.??????????"} 我试图从包含我的文本的文件中读取 Unicode 文本:

۹۸.۹۱۲۳۴۳۰۴۱۲

然后以这种方式阅读并发送:

* def persianMobile1 = read('classpath:account/unicode/persian.mobile.txt')

        Given url karate.get('urlBase') +  "account/activateMobileByVerificationCode"
        And request
      """
      {
       "mobile":#(persianMobile1),
       "code":#(defaultVerificationCode)
      }
      """

发生了同样的问题。我该怎么办?

4

1 回答 1

2

maven-surefire-plugin在您的设置中pom.xml使用UTF-8文件编码。<plugin>如果它不存在,请添加它。

        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <version>2.10</version>
            <configuration>
                <argLine>-Dfile.encoding=UTF-8</argLine>
            </configuration>
        </plugin>

编辑:看起来 OP 正在使用 Gradle。您需要获得空手道(我假设它是通过 JUnit 运行的)将 JVM file.encoding 设置为 UTF-8 - 来解决这个问题。

这是一个可以帮助您在 Gradle 中执行此操作的链接:https ://discuss.gradle.org/t/no-possibility-to-set-file-encoding-for-junit-tests-in-gradle-2-13 -and-odler/17223

如果需要,我建议您与 Java 开发人员合作。

于 2017-10-28T10:59:04.673 回答