在Android模拟器中显示韩语(不支持MacRoman)

时间:2012-06-08 03:23:45

标签: android eclipse unicode cordova android-emulator

我正在尝试开发一个韩语词汇应用程序,但我无法将韩语单词插入数据库并显示它们:它们显示为一串奇怪的字符。有什么方法可以解决这个问题吗?或者我只能将韩语单词显示为图像?我需要配置一些东西吗?

到目前为止,我将文本文件编码更改为“Other:UTF-8”。但这并没有解决问题。我现在正在使用Android Phonegap进行开发。任何提示或提示将不胜感激。谢谢。

===修订====

  <script type="text/javascript" charset="utf-8">
    // Wait for PhoneGap to load
    //
    document.addEventListener("deviceready", onDeviceReady, false);

    // Populate the database 
    //
    function populateDB(tx) {
        tx.executeSql('DROP TABLE IF EXISTS DEMO');
        tx.executeSql('CREATE TABLE IF NOT EXISTS DEMO (id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, kword TEXT NOT NULL, eword TEXT NOT NULL, pronoun TEXT NOT NULL, level INTEGER NOT NULL)');
        tx.executeSql('INSERT INTO DEMO (id, kword, eword, pronoun, level) VALUES ("1", "점심", "Lunch", "jeomsim", "1")');
        tx.executeSql('INSERT INTO DEMO (id, kword, eword, pronoun, level) VALUES ("2", "晚餐", "Dinner", "naeil", "1")');
    }

    // Query the database
    //
    function queryDB(tx) {
        tx.executeSql('SELECT * FROM DEMO', [], querySuccess, errorCB);
    }

    // Query the success callback
    //
    function querySuccess(tx, results) {
        var data ='';
        var len = results.rows.length;
        localStorage.tablerows = len;
        for (var i=0; i<len; i++){
            data = data +"<tr><td>"+results.rows.item(i).id +"</td><td>"+ results.rows.item(i).kword+ "</td><td>" +  results.rows.item(i).eword +"</td></tr>" ;
        }
        display(data);
    }

    // Transaction error callback
    //
    function errorCB(err) {
        alert("Error processing SQL: "+err.code);
    }

    // Transaction success callback
    //
    function successCB() {
        var db = window.openDatabase("Database", "1.0", "Vocabulary", 200000);
        db.transaction(queryDB, errorCB);
    }

    // PhoneGap is ready
    //
    function onDeviceReady() {
        var db = window.openDatabase("Database", "1.0", "Vocabulary", 200000);
        db.transaction(populateDB, errorCB, successCB);
    }

    function display(data){
        $('table#vocab').css('display','block');
        $('table#vocab tbody').append(data);
    }
</script>

enter image description here

1 个答案:

答案 0 :(得分:3)

您遇到编码问题。您似乎在UTF8中正确保存了'점심',但在Windows Latin 1中显示。您的问题出在显示方面。我们需要看到更多代码......

EDITED

你的代码很好 - 这是存储部分,我知道它还没关系。正如我上面所说,这是一个显示问题。您是否在网页的charset部分设置了<head>元标记?