我不知道这是Java问题还是Android问题。但最近我更新了有关Android开发设置的所有内容。
所以我升级了
我的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上。
请帮忙。
答案 0 :(得分:4)
好的,我自己找到了解决方案。我会在这里发布答案以供将来参考。
显然我的问题的原因是在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
的新环境变量,其值为 -Dfile.encoding=UTF8
这样,Java总是使用UTF-8作为默认编码。