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>