在Firefox扩展中,我打开一个数据库文件并显示数据库内容。但是,Firefox正在显示一些错误的字符,可能是由于编码问题。我试图在SQLite数据库浏览器中打开数据库文件,名称列正确显示。如何维护数据库查询的字符编码
如何正确处理该文本字符串,以便按照我的意愿输出字符(例如,Caché
而不是Caché
)?
代码段其再现此问题:
var StorageService = Cc["@mozilla.org/storage/service;1"]
.getService(Ci.mozIStorageService);
_Conn = StorageService.openDatabase(file);
var stmt = _Conn.createStatement("Select name from data");
var RunQuery = function() {
return {
arr: [],
handleResult: function (aResultSet) {
var row = aResultSet.getNextRow();
alert([row.getResultByName("name"), 'Cach\u00E9']);
},
handleError: function (aError) {},
handleCompletion: function (aReason) {}
};
};
stmt.executeAsync(RunQuery());
输出:Caché,Caché
预期输出:Caché,Caché
您必须将字符串从UTF-8转换到任何编码Firefox的预期。 – 2013-02-15 21:20:32