【问题标题】:Displaying non-English strings in Android在 Android 中显示非英语字符串
【发布时间】:2012-01-02 10:44:14
【问题描述】:

我的应用程序只有英语,但我动态检索和显示的一些数据来自不同的语言(例如:韩语)。我在将字符串项添加到列表视图之前这样做:

test = new String(item.name.getBytes("UTF-8"));

当我使用 Eclipse 调试器检查测试字符串时,我能够使用适当的语言字符查看字符串,但是当我在模拟器上显示列表视图时,它变成了垃圾。

我读到 Android 自动支持日语、泰卢固语等语言,所以我假设我在这里做错了。任何人都可以帮忙吗?谢谢!

【问题讨论】:

    标签: java android internationalization android-listview cjk


    【解决方案1】:

    你为什么要这样做?您有一个字符串,将其编码为 UTF-8,然后使用平台默认编码对其进行解码 - 如果默认编码不是 UTF-8,这显然会失败。

    明显的修复:test = item.name

    也正确但没用:test = new String(item.name.getBytes("UTF-8"), "UTF-8");

    【讨论】:

    • 我就是这样做的;将 item.name 字符串添加到列表视图中,但这不起作用,所以继续尝试使用测试字符串。也许我缺少一些模拟器的语言包?我是 Android 新手,我对这些东西一无所知。
    • @TheV 好吧,我会在真实设备上尝试一下,看看它是否不仅仅是一个模拟器错误。在 android 上显示 unicode 字符串应该没有任何问题。
    • 仅供参考...它在模拟器和实际手机上都无法正确显示。
    • @TheV 在这种情况下,很确定您在读取数据时遇到了错误 - 可能是不同的编码(CJS?)。也许 eclipse 调试器猜到了字节流的正确编码?需要更多代码。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-02-08
    • 2012-10-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-25
    相关资源
    最近更新 更多