2013-07-25 40 views
5

我對Java和Android都很陌生。文件以UTF-8格式保存,但在俄語中有奇怪的符號

我試圖用俄語字符來初始化字符串

lesson.addUnit(new NounUnit("Schiff", "Корабль", NounUnit.Gender.NEUTRAL)); 
    lesson.addUnit(new NounUnit("Tafel", "Доска, панель", NounUnit.Gender.FEMININUM)); 
    lesson.addUnit(new NounUnit("Lineal", "Линейка чертежная", NounUnit.Gender.NEUTRAL)); 

然而,當我打開我的調試器,我看到一些奇怪的chars

[–,ö,–,æ,—,Ä,–,∞,–,±,–,ª,—,å]代替Корабль

文件是UTF-8格式所以這不是問題 我也嘗試設置俄羅斯語區域

Locale locale = new Locale("ru"); 
    Locale.setDefault(locale); 

這沒有幫助。

PS:我使用過Android Studio IDE作爲 - 或許這是問題

+0

http://developer.android.com/reference/java/util/Locale.html – mipreamble

+0

@mipreamble這應該如何幫助? – BLaZuRE

+1

當你說文件被編碼爲UTF-8時,你的意思是Java源文件,是否正確?如果是這樣,你的平臺的本地編碼是什麼?我的猜測是該文件被編碼爲UTF-8,但Java編譯器不知道該文件,並將其解釋爲本機平臺編碼。 – devconsole

回答

5

通常多是誤導性的,因此以下步驟:

  1. 您可以檢查的.java文件的編碼與像一個編輯器免費JEdit
  2. 此外,編譯器編碼必須通過IDE或javac -encoding UTF-8進行設置。
  3. 嘗試"\u041a\u043e\u0440\u0430\u043b\u044c"。這是"Корабль"的獨立於編輯器的表示形式,可讓您查看運行時是否對.java進行了正確編碼。
+0

我試過「\ u041a \ u043e \ u0440 \ u0430 \ u043b \ u044c」,它的工作原理!不過,我確定我的文本是UTF-8編碼 - http://www.flickr.com/photos/gburanov/9369657738/ –

+0

不知道如何從IDE設置編譯器編碼 - 我得到了Android Studio –

+1

也許用' -Dfile.encoding = UTF-8'來啓動Android Studio。一個很短的谷歌搜索沒有帶來別的東西。對不起,我沒有使用AS。 –