2013-04-20 5 views
5

जब मैं phpmyadmin का उपयोग कर mysql डेटाबेस पर संग्रहीत डेटा को देखता हूं, तो अक्षरों को बिल्कुल ठीक से संग्रहीत किया जाता है, हालांकि जब मैं इन डेटा को एक HTML दस्तावेज़ पर प्रदर्शित करने के लिए php का उपयोग करता हूं जिसमें सटीक निम्न संरचना है :यूटीएफ -8 फ्रांसीसी उच्चारण वाले अंक

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<title></title> 
</head> 

<body> 
</body> 
</html> 

मैं उच्चारण चिह्न चरित्र के बजाय वर्ग मिल गया, हालांकि, मुझे लगता है कि एक ही पृष्ठ में mysql से लोड नहीं किया गया है स्थिर सामग्री पर किसी भी उच्चारण वर्ण के साथ इस मुद्दे नहीं है।

जब मैं पृष्ठ के स्रोत कोड पर देखता हूं तो वे समान दिखते हैं!

éçà 

mysql मूल डेटा का हिस्सा:

éçà 

मैं

साथ

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 

की जगह की कोशिश की

के रूप में प्रदर्शित स्रोत कोड पर स्थिर डेटा का हिस्सा: उदाहरण के लिए

<meta http-equiv="Content-Type" content="text/html; charset=windows-1552" /> 

और परिणामस्वरूप मुझे mysql एक निश्चित, वर्गों के साथ स्थैतिक मिला!

कोई संकेत?

SET NAMES utf8; 
SET CHARACTER SET utf8; 

और यह भी सुनिश्चित करें कि प्रत्येक मेज CHARACTER SET सेट हो:

+1

किसी संरूपण मुद्दे की तरह लग रहा। शायद आपके डीबी ड्राइवर यूटीएफ -8 का उपयोग नहीं कर रहे हैं? तथ्य यह है कि डीबी से आने वाला डेटा ठीक है जब आप 'विंडोज -1552' में बदलते हैं और स्थैतिक फाइलों का मतलब यह नहीं हो सकता कि आपकी स्रोत फ़ाइल यूटीएफ -8 में (सही ढंग से) है, लेकिन आपके डीबी से डेटा गलत एन्कोडिंग प्रारूप में आ रहा है। जो भी हो रहा है, यूटीएफ -8 तक चिपके रहें। – ubik

+0

आपके उत्तर के लिए धन्यवाद, मैंने डेटाबेस की जांच की है और मुझे लगता है कि कोलेशन 'latin1_swedish_ci' पर सेट है, क्या यह समस्या का स्रोत हो सकता है? – Mbarry

+1

हां, यह समस्या का स्रोत है, आप mysql में ascii में अपना डेटा संग्रहीत कर रहे हैं लेकिन फिर इसे अपने एचटीएमएल में utf8 के रूप में दिखाने की कोशिश कर रहे हैं .. – Nelson

उत्तर

5

यह बहुत आम चारसेट मुद्दा है, आप कनेक्शन एन्कोडिंग मैन्युअल MySQL कनेक्शन के लिए (उन पहले होना चाहिए प्रश्नों आप कनेक्शन स्थापित करने के बाद निष्पादित) निर्धारित करने की आवश्यकता है UTF-8 पर।

या आप server configuration भी अपडेट कर सकते हैं।

+0

'सेट नाम utf8 के साथ फिक्स्ड;' सुझाए गए अनुसार निष्पादित। धन्यवाद! – Mbarry

+0

http://stackoverflow.com/questions/3513773/change-mysql-default-character-set-to-utf8-in-my-cnf देखें कि सर्वर सर्वर पर स्वचालित रूप से इसे कैसे करें। – ubik

2

एक गलत कॉन्फ़िगरेशन समस्या की तरह दिखता है। शायद आपके डीबी या ड्राइवर यूटीएफ -8 का उपयोग नहीं कर रहे हैं।

तथ्य यह है कि डीबी से आने वाला डेटा ठीक है जब आप windows-1552 में बदलते हैं और स्थैतिक फाइलों का मतलब यह नहीं हो सकता कि आपकी स्रोत फ़ाइल यूटीएफ -8 में (सही ढंग से) है, लेकिन आपके डीबी का डेटा आ रहा है गलत एन्कोडिंग प्रारूप में।

जो भी हो रहा है, यूटीएफ -8 तक चिपके रहें।

अद्यतन: वहाँ एक धागा बताते हैं कि स्वचालित रूप से कनेक्शन के लिए एन्कोडिंग सेट करने का तरीका है:

Change MySQL default character set to UTF-8 in my.cnf?

+0

धन्यवाद पेड्रो, मुद्दा तय कर दिया गया है और मैं विंडोज़ -1552 तक नहीं टिकूंगा। जहां एक शब्द खिड़कियां हैं, वहां समस्याएं हैं। धन्यवाद – Mbarry

संबंधित मुद्दे