PDA

View Full Version : مشکل با وارد کردن اطلاعات فارسی در دیتابیس وب



majnoon110
پنج شنبه 19 تیر 1393, 16:59 عصر
سلام به شما
من میخوام اطلاعات و حروف نوشته شده به زبان فارسی رو به دیتابیس وب از طریق POST منتقل کنم. این انتقال انجام می شه ولی در درون پایگاه داده، به جای حروف فارسی، فقط به تعداد کاراکترها علامت سوال نشون داده میشه. البته اگه حروف انگلیسی وارد کنم مشکلی وجود نداره.

در این برنامه کاربر اطلاعات رو بر روی edit text های مختلف نوشته و با زدن دکمه "ثبت" این اطلاعات رو دیتابیس ذخیره میشه.

لطفا راهنمایی کنید دوستان عزیز

parvizwpf
پنج شنبه 19 تیر 1393, 17:35 عصر
اگه mysql هست احتمالا باید اون تنظیمات توی دیتا بیس رو برای utf-8 درست کنید.

majnoon110
شنبه 21 تیر 1393, 10:36 صبح
داخل دیتابیس تنظیمات جدول Collation رو بر روی utf8_persian_ci تنظیم کردم
تنظیم دیگه ای باید انجام بشه؟
گفتم که وقتی از طریق صفحه ی php مقادیر قبلی رو فراخوانی میکنم درست فارسی نشون میده
اما وقتی میخوام از طریق اندروید درج کنم، علامت سوال درج میشه

MrP.k
شنبه 21 تیر 1393, 11:27 صبح
باید اطلاعات رو هم بصورت یونی کد ارسال کنید

HttpPost httpPost = new HttpPost(url);
httpPost.setEntity(new UrlEncodedFormEntity(params,"UTF-8"));

majnoon110
شنبه 21 تیر 1393, 11:54 صبح
میشه کمی راهنمایی کنید؟
من نفهمیدم که چطور باید پارامتر ها رو ارسال کرد؟
لطفا کمی راهنمایی کنید.

majnoon110
یک شنبه 22 تیر 1393, 10:56 صبح
من اینطوری داده هام رو post میکنم. مشکلی در این روش وجود داره؟

URL mylink=new URL(Link);
URLConnection connect=mylink.openConnection();

String data=URLEncoder.encode("Name","UTF8")+"="+URLEncoder.encode(Name,"UTF8");
data+="&"+URLEncoder.encode("Tell","UTF8")+"="+URLEncoder.encode(Tell,"UTF8");
data+="&"+URLEncoder.encode("Address","UTF8")+"="+URLEncoder.encode(Address,"UTF8");
data+="&"+URLEncoder.encode("Sp","UTF8")+"="+URLEncoder.encode(Sp,"UTF8");

connect.setDoOutput(true);
OutputStreamWriter wr=new OutputStreamWriter(connect.getOutputStream());
wr.write(data);
wr.flush();


Link در اصل لینک یک صفحه ی php هست روی سرورم که اطلاعات رو میگیره از طریق متد پست و داخل دیتابیس درج میکنه.
این هم محتویات فایل واسط php:

<?php

$Name=$_POST['Name'];
$Tell=$_POST['Tell'];
$Address=$_POST['Address'];
$Sp=$_POST['Sp'];


$con=mysql_connect("","***","**");
mysql_select_db("***",$con);
mysql_query("SET CHARACTER SET 'utf8'", $con);

$sqlQ="insert into andt (Name,Tell,Address,Sp) VALUES('$Name','$Tell','$Address','$Sp')";
$result=mysql_Query($sqlQ);


if($result){print "1";}else{print "0";}



mysql_close($con);
?>

majnoon110
یک شنبه 22 تیر 1393, 14:34 عصر
مشکلم با اضافه کردن کد زیر در فایل واسط php حل شد:

mysql_query("SET NAMES 'utf8'");
mysql_query("SET CHARACTER SET utf8");
mysql_query("SET COLLATION_CONNECTION = 'utf8_persian_ci'");