【问题标题】:File is saved in UTF-8 but strange symbols in Russian language文件以 UTF-8 保存,但俄语中的符号很奇怪
【发布时间】:2013-07-25 21:13:57
【问题描述】:

我对 Java 和 Android 都很陌生。

我正在尝试用俄语字符初始化字符串

    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 - 可能这就是问题

【问题讨论】:

  • @mipreamble 这应该有什么帮助?
  • 当您说文件被编码为 UTF-8 时,您的意思是 Java 源文件,对吗?如果是这样,您平台的本机编码是什么?我的猜测是文件被编码为 UTF-8,但 Java 编译器不知道这一点并将其解释为本机平台编码。
  • @BLaZuRE : 俄语语言不适用于区域设置。
  • @mipreamble 查看链接文档的第二段。查找该段中提到的 ISO。它包含“ru”作为国家代码。

标签: java android android-studio


【解决方案1】:

通常很多都是误导性的,因此需要以下步骤:

  1. 您可以使用免费的JEdit 等编辑器检查 .java 文件编码。
  2. 还必须通过 IDE 或 javac -encoding UTF-8 设置编译器编码。
  3. 试试"\u041a\u043e\u0440\u0430\u043b\u044c"。这是"Корабль" 的编辑器独立表示,可让您查看.java 在运行时是否正确编码。

【讨论】:

  • 我试过“\u041a\u043e\u0440\u0430\u043b\u044c”,它有效!!不过,我确信我的文本采用 UTF-8 编码 - flickr.com/photos/gburanov/9369657738
  • 不确定如何从 IDE 设置编译器编码 - 我有 Android Studio
  • 也许使用 `-Dfile.encoding=UTF-8` 来启动 Android Studio。一个很短的谷歌搜索没有带来别的东西。抱歉,我没有使用 AS。
猜你喜欢
  • 2013-02-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-11-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多