【问题标题】:Android unicode Cyrillic string turns to СЕÐ�ДВИЧÐ�Ð Ð� when passed in function传入函数时,Android unicode Cyrillic 字符串变为 С¡С•ССТС”С'С~СГСССТ
【发布时间】:2013-09-26 21:11:54
【问题描述】:

我不知道这是 Java 问题还是 Android 问题。但最近我更新了有关我的 Android 开发设置的所有内容。

所以我升级了

  • Java 到 1.7_40 64 位(我也安装了 1.7_25 32 位),
  • Android Studio 到 0.2.10,
  • SDK 工具到版本 22.2.1,
  • SDK 平台工具到版本 18.0.1,
  • Gradle 1.7

我的 android 应用开始表现得很奇怪。在我的工具更新之前,这行代码就像预期的那样完美运行:

Category.getNew(1,"СЕНДВИЧАРА")

现在,在获取新功能的另一边

public static Category getNew(int id, String name){
        Category result = new Category();
        result.setId(id);
        result.setName(name);
        return result;
}

对于 name 参数,我得到了这个字符串 СЕÐ�ДВИЧÐ�РÐ�,这不是我所期望的,我想要我的 СЕНДВИЧАРА,这个字符串被传递给 UI。

我不能让那个神秘的字符串显示在 UI 上。

请帮忙。

【问题讨论】:

    标签: java android unicode cyrillic


    【解决方案1】:

    好的,我自己找到了解决方案。我会在这里发布答案以供将来参考。

    显然我的问题的原因是在 Gradle 中。根据 Android Studio 的建议,这是我第一次使用它。

    我注意到 Gradle 在构建应用程序期间报告问题的能力不是很好,它会随机显示它们。在构建应用程序时,我注意到了这个错误:

    Gradle: error: unmappable character for encoding Cp1252
    

    这个错误看起来是我的问题的原因。快速谷歌搜索,我碰到了这篇文章:Get rid of “unmappable character for encoding Cp1252″ once and for all,总而言之,它说添加名为 JAVA_TOOL_OPTIONS 的新环境变量,其值为 @ 987654324@ 这样 Java 将始终使用 UTF-8 作为默认编码。

    【讨论】:

      猜你喜欢
      • 2021-07-16
      • 1970-01-01
      • 1970-01-01
      • 2020-12-24
      • 2013-10-21
      • 2023-03-17
      • 1970-01-01
      • 2021-07-24
      • 2019-01-06
      相关资源
      最近更新 更多