1

我正在使用 IBM Worklight 开发一个 Android 应用程序。它使用 HTML5、Javascript 和 CSS。我的 IDE 是 Eclipse Indigo。

我的问题是,为什么只有一种字符串声明变体能正确显示字符串?

这是 JavaScript 代码。脚本文件是 UTF-8 编码的,项目中的所有文件也是如此(我在 eclipse 的文件属性中更改了这个):

function setLangGerman() {
    Messages = {
        pstHeader : "%C3%9Cbungen",
        btUebersicht : encodeURIComponent("Übersicht"),
        btStart : "Überhaupt nicht",
        btOptions : "Optionen",

        xDelConfirm : "Willst Du die Serie wirklich löschen?"
    };
}

function setLangGeneral() {
    var lang = localStorage.getItem(g_lsLang);

    if(lang === "de")
    {
        setLangGerman();
    }
    else
    {
        setLangEnglish();
    }

    $(".translate").each(function(index, element) {
        element = $(element);
        var elementId = element.attr("id");
        element.text(decodeURIComponent(Messages[elementId]));
    });
}

您会看到我尝试在 3 种变体中使用变音符号(pstHeader, btUebersicht, btStart)。只有pstHeader在我的 Android 设备上正确显示。但是当我在 Chrome 中调试时,所有 3 种变体都会正确显示。我还不能发布截图,但我希望你能理解。

为了完成我的问题,这是 main.html 文件。它也是 UTF-8 编码的:

<head>
    <meta charset="UTF-8">
...
    <div data-role="page" id="pageStart">
        <div data-role="header" id="header">
            <h3 id="pstHeader" class="translate">Billardübungen</h3>
        </div>
        <div data-role="content" style="padding: 15px">
            <a href="#pageOverview" data-role="button" id="btUebersicht" class="translate">Übersicht</a>
            <a href="#" data-role="button" id="btStart" class="translate">Starte neue Serie</a>
            <a href="#pageOptions" data-role="button" id="btOptions" class="translate">Optionen</a>
        </div>
...
4

1 回答 1

0

这让我想起了在 Worklight 6.0 中更正的一个缺陷。

确保其中生成的项目文件android\native也是 UTF-8 格式。

于 2013-08-06T05:27:23.520 回答