TestNG 无法打印阿拉伯字符

TestNG is unable to print Arabic Characters

我必须打印阿拉伯字符串(我使用的是 TestNG 框架)。我的代码是这样的:

    @Test
    public void test() throws UnsupportedEncodingException{
        String countryString = "المملكة العربية السعودية";
        String utfCountryString = new String(countryString.getBytes(), "utf-8");
        System.out.println("UTF String : "+utfCountryString);
        System.out.println("Original String : "+countryString);
    }

但是当我 运行 它使用 TestNG 时,我得到以下输出:

UTF String : ??????? ??????? ????????
Original String : ??????? ??????? ????????
PASSED: test

===============================================
Default test
Tests run: 1, Failures: 0, Skips: 0
===============================================

但是,如果我 运行 在 main() 方法下或使用 jUnit,输出完全没问题。

请告诉我如何使用 TestNG 运行 它。谢谢

当 java 编译器的文件编码未定义为 UTF-8 编码时会出现问题。正如您提到的,您正在使用 Ant 作为构建工具,在 build.xml 文件中定义以下编码。

<javac ... encoding="UTF-8" ... />

经过测试,对我来说工作正常。

尝试将以下内容粘贴到您的构建文件中:

<javac debug="true" debuglevel="${debuglevel}" destdir="${classes.dir}" encoding="UTF-8"
    includeantruntime="false" source="${source}" target="${target}"
    srcdir="src">
    <src path="src" />
    <classpath refid="Dummy.classpath" />
</javac>