Я пытаюсь сделать запрос выбора с арабским языком в Си, используя SQLite.
Все хорошо, но арабская запятая имеет проблемы.
Это не работает вообще только для арабской запятой.
sprintf(sql_query, "SELECT id, family_name, given_name, instr(normalized_given_name||normalized_family_name , '%s') FROM Database
WHERE (given_name||family_name LIKE '%%%s%%' OR normalized_given_name||normalized_family_name LIKE '%%%s%%')", searchWord, searchWord, searchWord);
Я делаю SQL-запрос, используя sprintf со значением sql_query, которое является массивом 4096.
ВЫБЕРИТЕ идентификатор, имя семьи, имя, имя,
instr (normalized_given_name || normalized_family_name, ،) из базы данных
ГДЕ (имя_файла || имя_файла НРАВИТСЯ% ،% ИЛИ
normalized_family_name || normalized_given_name LIKE% ،%)
Над SQL это то, что я получаю из журнала, печатая SQL-запрос.
int result1 = sqlite3_prepare_v2(phonebook_Db, sql_query, -1, &main_stmt, 0);
while( (result2 = sqlite3_step(main_stmt)) == SQLITE_ROW)
{
~~
}
Это прекрасно работает с другими языками и арабскими словами.
Проблема с арабской запятой возникает только из-за отсутствия результата.
Несмотря на то, что есть арабское имя с арабской запятой, оно встречается с арабским, но если я добавлю арабскую запятую, его не найти.
(напр .: ششطسببض ، صصينس)
Как получить правильный результат с арабской запятой?