2017-09-04 75 views

回答

1

確保您的字符編碼是UTF-8。

您顯示的代碼段按預期完美工作。

例如,如果你使用windows-1252編碼你的源文件,它將無法工作。

+0

我怎麼確定它的utf-8? 。我正在使用Ubuntu 16.04 LTS –

0

問題是System.out.println是PrintWriter,它使用默認編碼將阿拉伯字符串轉換爲字節;這大概無法處理阿拉伯字符。嘗試

System.out.write(str.getBytes("UTF-8")); 
System.out.println(); 
0

許多現代操作系統使用UTF-8作爲默認編碼,它將正確支持非拉丁字符。 Windows不是其中之一,ANSI是西方安裝的默認設備(我最近沒有使用過Windows,所以可能已經改變了)。無論哪種方式,您都應該強制執行Java進程的默認字符編碼,而不考慮平臺。

正如另一個問題#1(見Setting the default Java character encoding?),你需要更改默認如下,供Java進程描述:

java -Dfile.encoding=UTF-8 

此外,由於你在IDE中運行,您可能需要告訴它在顯示的字符集中顯示輸出或者冒風險,儘管這是特定於IDE的,確切的說明將取決於你的IDE。

另一件事是,如果您正在閱讀或編寫文本文件,那麼您應該始終指定預期的字符編碼,否則您將面臨退回到平臺默認值的風險。

0

您需要爲此設置字符集utf-8。

在java的水平,你可以這樣做:

Charset.forName("UTF-8").encode(myString); 

如果你想在IDE級別這樣做,那麼你可以這樣做:

窗口>首選項>常規>內容類型,設置UTF-8作爲所有內容類型的默認編碼

相關問題