مشکل عدم تطابق حروف فارسی در MYSQL و جاوا
با سلام . من یک جدول پر شده از اسامی فارسی در MYSQL دارم . مشکل اینجاست که حروف فارسی تایپ شده در یک swing.JTextField اگرچه کاملا شبیه حروف فیلد بانک اطلاعاتی است ولی زمانی که برای جستجو به QUERY ارسال میشود همخوانی ندارد . انگار کدینگ برخی حروف مثل هم نیست مانند حرف ی . جدول من از کالیشن UTF8_GENERIC_CI استفاده میکند . از netbeans نسخه 11.2 استفاده میکنم و مای اسکی ال 5.7 و هیچ مشکلی در تایپ فارسی در تکست باکس در جاوا ندارم .
در ضمن با جستجو در اینترنت این راه حل را هم آزمودم و جواب نگرفتم و آن اینکه در مسیر netbeans\etc\netbeans.conf در انتهای فایل خط زیر را اضافه کردم :
-J-Dfile.encoding=UTF-8
کلا دنبال یک راه حل قطعی برای حذف این مشکل متن فارسی بین جاوا و مای ای کیو ال هستم چه از جاوا به مای اس کیو ال و چه برعکس .
در ضمن با tedit در دلفی تست کردم و هیچ مشکلی در آنجا وجود نداشت .
ممنون از راهنمایی شما
نقل قول: مشکل عدم تطابق حروف فارسی در MYSQL و جاوا
توی کانکشن استرینگی که ساختی که از جاوا به دیتابیست پکتی رو ارسال میکنه حالا چه برای ویرایش چه ثبت چه جستجو باید از یونیکد 8 استفاده کنی یعنی کانکشنت باید یه چیزی مثل این باشه تا به مشکل نخوری
jdbc:mysql://127.0.0.1:3306/price?user=root&password=&useSSL=false&characterEn coding=UTF-8
وجود این برای ساپورت فارسی توی جاوا به دیتا بیس خیلی مهمه
characterEncoding=UTF-8
و در آخر هم برای اینکه کیبردت حروف فارسی و عربی رو قاطی نکنه برای KeyReleased یا FocusLost تکست باکست میتونی از کد زیر استفاده کنی
String a = txtcars.getText();
String b = a.replace("ي", "ی");
txtcars.setText(b);
String c = txtcars.getText();
String d = c.replace("ك", "ک");
txtcars.setText(d);
توی خود دیتابیس هم از Collation---> utf8_persian_ci استفاده کن