ورود

View Full Version : مشکل عدم تطابق حروف فارسی در MYSQL و جاوا



mr.323
دوشنبه 23 تیر 1399, 00:52 صبح
با سلام . من یک جدول پر شده از اسامی فارسی در MYSQL دارم . مشکل اینجاست که حروف فارسی تایپ شده در یک swing.JTextField اگرچه کاملا شبیه حروف فیلد بانک اطلاعاتی است ولی زمانی که برای جستجو به QUERY ارسال میشود همخوانی ندارد . انگار کدینگ برخی حروف مثل هم نیست مانند حرف ی . جدول من از کالیشن UTF8_GENERIC_CI استفاده میکند . از netbeans نسخه 11.2 استفاده میکنم و مای اسکی ال 5.7 و هیچ مشکلی در تایپ فارسی در تکست باکس در جاوا ندارم .
در ضمن با جستجو در اینترنت این راه حل را هم آزمودم و جواب نگرفتم و آن اینکه در مسیر netbeans\etc\netbeans.conf در انتهای فایل خط زیر را اضافه کردم :
-J-Dfile.encoding=UTF-8

کلا دنبال یک راه حل قطعی برای حذف این مشکل متن فارسی بین جاوا و مای ای کیو ال هستم چه از جاوا به مای اس کیو ال و چه برعکس .
در ضمن با tedit در دلفی تست کردم و هیچ مشکلی در آنجا وجود نداشت .

ممنون از راهنمایی شما

cnmeysam
دوشنبه 18 اسفند 1399, 21:03 عصر
توی کانکشن استرینگی که ساختی که از جاوا به دیتابیست پکتی رو ارسال میکنه حالا چه برای ویرایش چه ثبت چه جستجو باید از یونیکد 8 استفاده کنی یعنی کانکشنت باید یه چیزی مثل این باشه تا به مشکل نخوری


jdbc:mysql://127.0.0.1:3306/price?user=root&password=&useSSL=false&characterEncoding=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 استفاده کن