如何从sqlite DB中获取阿拉伯语文本的结果?

时间:2014-03-31 12:38:52

标签: javascript sqlite cordova

我在从SQl Lite数据库中读取数据时遇到了问题,这些数据是我存储的阿拉伯数据。阿拉伯语文本在我的Db中正确保存。我正在使用以下代码。

if(language == "arabic"){
    //alert(value);
    db.transaction(function(tx) {tx.executeSql('SELECT *  FROM BRANDOFFERS WHERE brandId IN (SELECT id FROM BRANDS WHERE nameArabic="'+value+'") ', [], fillDiscountType, errorCB);}, errorCB);
}else{
    db.transaction(function(tx) {tx.executeSql('SELECT *  FROM BRANDOFFERS WHERE brandId IN (SELECT id FROM BRANDS WHERE name="'+value+'") ', [], fillDiscountType, errorCB);}, errorCB);

在阿拉伯语的情况下,它没有取得任何结果,但反对英语我得到正确的结果。此外,我试图从sqllite DB显示阿拉伯语文本,它显示正确。但是,我不知道为什么它无法用阿拉伯语文本进行搜索。在

1 个答案:

答案 0 :(得分:0)

我想我明白了。我使用了以下代码

var getServerAtabicText = brands[i].nameArabic;  //Arabic text
var decodedArabicText = $('<div/>').html(getServerAtabicText).text();

将阿拉伯语文本保存到SQL lite DB之前。然后我只是运行相同的代码:

if(language == "arabic"){
//alert(value);
db.transaction(function(tx) {tx.executeSql('SELECT *  FROM BRANDOFFERS WHERE brandId IN (SELECT id FROM BRANDS WHERE nameArabic="'+value+'") ', [], fillDiscountType, errorCB);}, errorCB);
}else{
db.transaction(function(tx) {tx.executeSql('SELECT *  FROM BRANDOFFERS WHERE brandId IN (SELECT id FROM BRANDS WHERE name="'+value+'") ', [], fillDiscountType, errorCB);}, errorCB);

用于查询我的数据并且它可以工作(: