如何从sql Lite DB获取针对阿拉伯文本的结果

How to fetch result from sql Lite DB against arabic text?

本文关键字:阿拉伯 文本 结果 获取 sql Lite DB      更新时间:2023-09-26

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

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的阿拉伯语文本,它显示正确。但是,我不知道为什么它不能用阿拉伯语文本搜索。在

我想我想通了。我使用了以下代码段

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

在将阿拉伯文本保存到 SQL 精简版数据库之前。然后我只需运行相同的代码:

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);

用于查询我的数据并且它有效(: