2012-11-18 40 views
12

संभव डुप्लिकेट:
Save Data in Arabic in MySQL databasephp/mysql में अरबी भाषा "????" दिखाई देती है html में प्रश्न चिह्न

मैं PHP का उपयोग MySQL डाटाबेस से अरबी डेटा पुन: प्राप्त के साथ एक समस्या है, यह प्रश्न चिह्न के रूप में प्रकट होता है "????" एचटीएमएल में:

  1. मेरे पास "utf8_general_ci" के साथ एक डेटाबेस है जो संयोजन के रूप में है।
  2. डेटाबेस में अरबी भाषा में कुछ डेटा है।
  3. एचटीएमएल एन्कोडिंग "यूटीएफ -8" है।
  4. जब मैंने HTML में डेटा पुनर्प्राप्त करने का प्रयास किया, तो यह "?????" के रूप में दिखाई देता है।

कृपया मदद करें !!!

+5

डेटाबेस से कनेक्ट करने के बाद, डेटा पुनर्प्राप्त करने से पहले इस क्वेरी को "सेट नाम utf8" निष्पादित करें। – Aziz

+0

कभी-कभी ऐसे चरण होते हैं जहां टूल श्रृंखला का कोई भी घटक UTF-8 का उपयोग करने के लिए _not_ कॉन्फ़िगर किया गया है, तो चीज़ें _can_ गलत हो जाती हैं। तो अंत में आपको उन सभी स्टेशनों पर जांच करनी होगी जहां डेटा उस स्थान को खोजने के लिए यात्रा करता है जहां एन्कोडिंग अचानक टूट जाती है। – arkascha

+0

धन्यवाद @Aziz .. यह आकर्षण की तरह काम किया :) – CairoCoder

उत्तर

28

आप चारसेट सेट पहले इस क्वेरी से mysql के साथ कनेक्ट में करना होगा:

SET CHARACTER SET utf8 
उदाहरण के लिए

mysqli कार्यों

$MySQL_Handle = mysqli_connect(HOSTNAME,DATABASE_USERNAME,DATABASE_PASSWORD,DATABASE_NAME) 
or die (mysqli_error($MySQL_Handle)); 

$sSQL= 'SET CHARACTER SET utf8'; 

mysqli_query($MySQL_Handle,$sSQL) 
or die ('Can\'t charset in DataBase'); 

और पीडीओ नमूने में:

$dbh = new PDO('mysql:host=localhost;dbname=' . $DB_NAME, $DB_USER, 
$DB_PASS, array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES 'UTF8'")); 
$dbh->exec("SET CHARACTER SET UTF8"); 

इस कार्रवाई की जरूरत डालने से पहले और चयन से पहले।

+1

धन्यवाद @ महदी पारसा .. यह काम किया :) – CairoCoder