View Full Version : سوال: وارد کردن دادهای فارسی در MySql
radvin
یک شنبه 28 فروردین 1390, 12:53 عصر
من وقتی در یکی از جداول بانک mysql خودم یک داده فارسی تایپ می کنم بدون هیچ مشکلی کلمات فارسی رو نشون می ده اما وقتی می خوام ذخیره کنم از همون فیلدهایی که داده فارسی دارن ارور میگیره.
error 1366 : incorrect string value
از دوستان خواهش میکنم اگر می تونن منو راهنمایی کنند.
mehdi.nine
سه شنبه 30 فروردین 1390, 22:27 عصر
سلام.
دوست عزیز یه کم سوالت مبهم بود ولی اگه این کار رو بکنی مشکلت حل میشه.
به فرض می خوایم داخل جدول test و ستون name داده رو وارد کنیم به این صورت کار می کنیم:
create table test
(
name char(20) character set utf8 set colates utf8_persian_ci
)
insert into test
values('مهدی');
منم همین مشکل رو داشتم ولی با این کار مشکل حل شد.
موفق باشی.
radvin
شنبه 03 اردیبهشت 1390, 10:02 صبح
دوست عزیز از جوابتون ممنونم.
اما مشکل من اینه که وقتی می خوام به طور مستقیم یک رکورد رو در بانک وارد کنم( نه از طریق برنامه نوشته خودم بلکه از طریق نرم افزار workbench mysql) اصلاً اجازه اضافه شدن نمی ده که بخواد به شکل علامت ؟ یا فارسی باشه. من مشکلم با نرم افزار مدیریت بانک MySql که اصلا اجازه ورود داده فارسی در جدول رو نمی ده. تمام تنظیمات ویندوز من هم رو فارسیه و همه جداول هم روی Utf 8 persian تنظیم شده.
ar.mahdian
شنبه 10 اردیبهشت 1390, 19:21 عصر
مشکل من هم مثل همین مشکل است.
هم پایگاه داده و هم خود خدول و هم فیلد متنی جدول به utf8_persian_ci تنظیم شده اما وقتی با استفاده از جاوا در نتبینز اقدام به درج رکورد میکنم این پیام رو میده:
java.sql.SQLException: Incorrect string value: '\xD8\xB9\xD9\x84\xDB\x8C...' for column '@f3' at row 196
at com.mysql.jdbc.SQLError.createSQLException(SQLErro r.java:1055)
at com.mysql.jdbc.SQLError.createSQLException(SQLErro r.java:956)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.ja va:3491)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.ja va:3423)
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:19 36)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java :2060)
البته من از طریق stored procedure اقدام به درج میکنم:
CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_t1_InsertRow`(
IN `@f2_k2` int(11),
IN `@f3` varchar(50))
INSERT INTO t1( `f2_k2`, `f3`)
VALUES( `@f2_k2`, `@f3`)
ممنون میشم راهنمایی کنید
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.