2013-07-25 13 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。 –