TestNG не может печатать арабские символы

Я должен напечатать арабскую строку (я использую среду 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. Благодарю.

2 ответа

Решение

Проблема возникает, когда кодировка файла для компилятора 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>
Другие вопросы по тегам