2015-09-04 103 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,intellij的內部測試運行器,intellij終端中的maven和iterm2中運行正確的輸出。 我想猜測它可能與你如何調用你的測試以及你的終端是什麼有關。 因此,我會迴應@RamonSnir並詢問您使用的是什麼操作系統和jdk,並添加,您如何調用? – lscoughlin

+0

嗨,我正在使用Windows 8.1和testng 6.8與ant-1.9.4 – Rachit

回答

0

如果未對UTF-8編碼定義針對java編譯器的文件編碼,則會出現問題。正如您所提到的,您使用Ant作爲構建工具,請在build.xml文件中定義以下編碼。

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

經過測試,工作正常。

-1

嘗試通過粘貼在生成文件中的以下內容:

<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>