ورود

View Full Version : حروف به هم ریخته در دیتابیس %DA%A9 (والا همه چی درسته)



H:Shojaei
دوشنبه 24 آذر 1393, 23:51 عصر
سلام...
نوع جدول utf8_persian_ci هست و
با pdo کار میکنم...
اتصالات به این شکل نوشتم:


$DBH1= new PDO("mysql:host=".HOST.";dbname=".DBN.";charset=utf8",USER,PASS);

$DBH1->exec("set names 'utf8'");

توی فایل اصلی هد به این شکل هست:


<!DOCTYPE html>
<html dir="rtl">
<head>
<meta charset="UTF-8">
<meta http-equiv="content-type" content="text/html; charset=utf-8"/>
</head>

فایل هم با utf8-without bom هم ذخیره کردم با utf8 خالی هم ذخیره کردم با نوتپد هم ذخیره کردم بازم نشد که نشد کاراکتر ها تو دیتابیس به صورت %DA%A9 هستن
واقعا موندم چشه باز جالب اینجاست که یه دایرکتوری برمیگردم عقب همه چیز همینطوره با همون کلاس کار میشه فایل دقیقا به همون شکل ذخیره شده و... ولی درست اطلاعات درج میشه چه کنم!!:عصبانی++:

H:Shojaei
سه شنبه 25 آذر 1393, 00:05 صبح
مشکلش رو فهمیدم..
من اومدم فیلد هام تو دیتابیس رو با نام اینپوتهام برابر گرفتم که از $_POST یه رشته بسازم و بفرستم به یه تابع و اونجا کلیدها بشه فیلدهام و مقادیر هم بشه اطلاعاتی که قراره درج بشن و اون رشته هه رو که از آرایه $_POSY میسازم با تابع:

$fields=http_build_query($postArray,'',',');
به یه استرینگ تبدیل میکنم که مثلا بشه key=value,key=value و فرستادمش به تابع که اونجا اکسپلود میشه و رشته شکسته میشه و کوئری رو میسازم باهاش و وقتی کوئری میشه مقادیر به این شکلی که گفتم در میاد!
وقتی رشته الحاقی از فیلدها و مقادیر رو خودم میسازم بدون این که از تابع http_build_query استفاده کنم درست درج میشه ولی وقتی با این تابع میسازمش مقادیر به شکلی که گفتم در میاد چرا!؟
یعنی این تابع یونیکد ساپورت نمیکنه؟؟

rezaonline.net
سه شنبه 25 آذر 1393, 00:19 صبح
فکر کنم خودکار url_encode میشه شما یه url_decode کنید حل میشه :)

H:Shojaei
سه شنبه 25 آذر 1393, 00:26 صبح
فکر کنم خودکار url_encode میشه شما یه url_decode کنید حل میشه :)
:تشویق:
ممنون آقا رضا بله درست شد مرسی دیدم تو سرچا از این تابع استفاده کرده بودن فکر کردم واسه کار دیگس