特殊字符替换为Android应用程序中的方块

时间:2012-01-05 11:38:32

标签: android character-encoding

在我的Android应用程序中,我做了一个简单的吐司

Toast.makeText(
        parent.getApplicationContext(),
        parent.getResources().getIdentifier(result, "string",
        parent.getPackageName()), Toast.LENGTH_LONG).show();

parent.getResources().getIdentifier(result, "string", parent.getPackageName())

检索名称与strings.xml的结果匹配的字符串。我有一个用于英语和德语的strings.xml文件。问题是像ÖÖÄ这样的德语特殊字符无法正确显示。它们被方形符号取代。

strings.xml是utf-8编码的。

问题出在哪里?我该如何解决?

3 个答案:

答案 0 :(得分:2)

ArtWorkAD,

似乎问题是由于Toast.makeText()方法在从资源中提取特殊字符时未使用正确的字符集这一事实造成的。

我建议你作为一个调试步骤,独立地从字符串中拉出字符串并使用

Toast.makeText(Context context, CharSequence text, int duration).show();

重载以呈现文本。通过这种方式,您可以确认文本是您所期望的,并缩小您的问题范围。

答案 1 :(得分:0)

答案 2 :(得分:0)

您可以使用自定义对话框,而不是使用Toast Message,您可以在TextView上显示此字符串。现在使用

    TextView textView=new TextView(this);
    textView.setText(Html.fromHtml("your string"));

希望这对你有用,但还没试过