2015-09-04 5 views
1

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

Однако выход совершенно нормально, если я запускаю его под основным () или используйте jUnit.

Скажите, пожалуйста, как я могу запустить его с помощью TestNG. Благодарю.

+0

Какую операционную систему вы используете (Windows/Mac/Linux) и какой версии? Возможно, проблема связана с самим терминалом. –

+0

На mac os x 10.10 с maven 3.3.3 и intellij 15 EAP ваш тест выполняется с правильным выходом под testng 6.8.8, из intenal testner бегуна intellij, от maven в intellij терминале и от iterm2. Я собираюсь догадаться, что это, вероятно, имеет много общего с тем, как вы используете свои тесты, и что такое ваш терминал. Итак, я буду эхом @RamonSnir и спросить, какие os и jdk вы используете, и добавьте, как вы вызываете? – lscoughlin

+0

Привет, я использую Windows 8.1 и testng 6.8 с ant-1.9.4 – Rachit

ответ

0

Проблема возникает, когда кодировка файла для java-компилятора не определена для кодировки UTF-8. Как вы уже упоминали, вы используете Ant как инструмент сборки, определите следующую кодировку в файле build.xml.

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

Протестировано и работает отлично для меня.

-1

Try вставив следующее в файле сборки:

<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> 
Смежные вопросы