IBM Worklight - UTF-8编码未按预期工作

时间:2013-07-30 20:06:14

标签: android encoding utf-8 ibm-mobilefirst

我正在使用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种变体中使用变音符号(pstHeaderbtUebersichtbtStart)。我的Android设备上只显示pstHeader。但是当我在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>
...

1 个答案:

答案 0 :(得分:0)

这让我想起了Worklight 6.0中纠正的缺陷。

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