如何为Android显示øæå等外国字母

时间:2013-06-04 09:39:20

标签: android

如何在android应用程序中显示类似øæå的字母,我想在完整项目中显示这些字符,请帮助我如何操作?

4 个答案:

答案 0 :(得分:2)

如何使用Charset.forName("UTF-8").encode(myString)?当然,字符串应该存储在外部资源string.xml中,因此mystring应该是例如。

String mystring = getString(R.string.myStringResource);

答案 1 :(得分:2)

从JSON文档中读取字符串时,请确保正确解码JSON文件。也就是说,知道用于创建JSON文件的字符编码,并在解码文件时使用相同的编码。

假设您已经有一个用于读取JSON文档的InputStream,您可以使用以下内容:

private static final Charset JSON_CHARSET = Charset.forName("UTF-8");

private JSONObject loadJsonObject(InputStream in) throws JSONException, IOException {
    InputStreamReader reader = new InputStreamReader(in, JSON_CHARSET);
    StringWriter writer = new StringWriter();
    copy(reader, writer);
    return new JSONObject(writer.toString());
}

private static void copy(Reader reader, Writer writer) throws IOException {
    try {
        char[] buffer = new char[512];

        while (true) {
            int nChars = reader.read(buffer);
            if (nChars < 0) {
                break;
            }

            writer.write(buffer, 0, nChars);
        }
    } finally {
        reader.close();
        writer.close();
    }
}

如有必要,请使用UTF-8以外的字符集。

答案 2 :(得分:0)

将特殊strings.xml放在res/value-xxx/

答案 3 :(得分:0)

我发现我必须将布局文件的XML属性更改为UTF16才能使某些扩展字符正确显示。

<?xml version="1.0" encoding="UTF-16"?>