مشکل حرف "ی" و با "ک"
با سلام
دوستانبنده یک سری اطلاعات رو از sqlserver بصورت json میگیرم و درون یک جدول sqlite ذخیره می کنم.
موقع search در جدول sqlite مثلا وقتی نام خانوادگی یک شخص شامل حرف "ی" هست نتیجه ای برای دستور select نمیاره!
همونطور که مستحضرید در sqlserver وقتی بنویسیم like N'%text%' - for test مشکل حل میشه. ولی نمیدونم اینجا راه حلش چیه! کسی می تونه کمک کنه؟
دوست عزیز مشکل در عدم تطابق این دو حرف هست . ی و ي
البته ي درسته. و توی Sql server هم همین مشکل هست. و ربطی به N گذاشتن نداره و اصلا N برای چی پشت رشته می زاریم و اصلا باید بزاریم یا نه در حوصله این بحث نیست. فقط یک کلام بگم مربوط می شه به character encoding
ولی در اینجا ما با دو کارکتر متفاوت با کد اسکی متفاوت سرکار داریم.باید حرف وارد شده توسط کاربر با حرف وارد شده توی دیتابیس یکی باشه. برای این کار ابتدا توی دیتابیس حرف "ی" و "ک" را به ترتیب "ي" و "ك" جایگزین کنید که دستورش هم هست :
update _tablename set _fildname = REPLACE(_fildname ,'ی', 'ي' );
update _tablename set _fildname = REPLACE(_fildname ,'ک', 'ك' );
بعد توی اندروید متنی را که می خواین جستجو کنین به صورت زیر ابتدا حروف غلط اون را جایگزین و بعد توی کوئری برا جستجو بزارین
str1 = str1.replace('ی', 'ي').replace('ک', 'ك');
string query = "select * from _tablename where _fildname like '%" + str1 + "%'
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .