سوال بپرسید
1

ذخیره کلمات فارسی در PHPMyadmin

سوال بپرسید

فرمهای php من با کاراکتر utf8 و دیتابیس و جدولهامم utf8-persian-ci هست اما موقع ارسال فارسی از فرم به دیتابیس به شکل ناخوانا در میاد یعنی علیرضا رو این شکلی مینویسه:
علیرضا

راه حلی هست برای درست کردنش؟

برچسب ها:
گزارش سوال
پرسیده شده در
آمار بازدید: 351

2 پاسخ

1

از تابع htmlentities استفاده کنید. آرگومان اول رشته مورد نظر، آرگومان دوم مقدار ثابت و ارگومان سوم نوع رمز گذاری (encoding) را مشخص می کند که مقدار پیش فرض آن از PHP 5.4  به بالاتر برابر UTF-8 می باشد.

آرگومان دوم یکی از سه مقدار زیر است:

ENT_COMPAT : کارکترهای single quote تبدیل نمی شوند.

ENT_QUOTES  : کارکترهای single quote و double quote تبدیل می شوند.

ENT_NOQUOTES : کارکترهای single quote و double quote تبدیل نمی شوند.

می توانید از کد مشابه زیر استفاده کنید.

$value = 'علیرضا';
$value    = htmlentities($value, ENT_NOQUOTES, 'UTF-8');

بسته به نیاز ارگومان دوم را مقداردهی کنید.

همچنین می توانید از تابع  htmlspecialchars استفاده کنید که آرگومان های این تابع هم مشابه آرگومان های تابع htmlentities  می باشد. تابع htmlspecialchars فقط کارکتر های خاص html را با کد معادل انها جایگزین میکند در حالیکه تابع htmlentities  علاوه بر تبدیل کارکترهای خاص، کارکترهای unicode یا غیر ASCII رارمز گذاری می کند.

کارکترهای خاص عبارتند از :

کد معادلکرکتر
;amp&&
;quot&"
;#039&'
;lt&>
;gt&<

امیدوارم که این پاسخ مشکل را برطرف کرده باشد.

0

سلام اگه با mysqli نوشته شده utf8 رو ست کن براش

mysqli_query($db, "SET NAMES UTF8");