2013-07-12 10 views
5

मेरे पास utf8 में संग्रहीत विदेशी भाषा तार हैं। उन्हें प्रदर्शित करते समय, मैं चाहता हूं कि वे इस तरह से रूपांतरित हो जाएं कि उच्चारण वर्ण उनके एचटीएमएल समकक्ष बनें, उदा। ééaccp chars को html में php में कैसे परिवर्तित करें?

हालांकि मैं अपनी खोज वाक्यांश करता हूं, मुझे लगता है कि यह सब htmlentities() है जो ऐसा नहीं करता है।

+4

कृपया बताएं कि आप ऐसा करने की जरूरत है। यदि आप यूटीएफ -8-एन्कोडेड एचटीएमएल उत्पन्न करते हैं, तो आप बस अपने यूटीएफ -8 अक्षरों को आउटपुट कर सकते हैं। – jeyk

+0

ठीक है, तो ठीक है। यह सिर्फ सही काम नहीं लगता है। – Gabriel

+0

इसके अलावा, यदि आप वास्तव में इकाइयों में परिवर्तित करना चाहते हैं तो 'htmlentities' वास्तव में होगा। आप विपरीत क्यों सोचते हैं? – Jon

उत्तर

8

सुनिश्चित करें कि आप htmlentities() पर कॉल करते समय सुनिश्चित करें कि आप एन्कोडिंग को सही तरीके से निर्दिष्ट कर रहे हैं।

प्रलेखन दिखाता है कि यह 'UTF-8' पर डिफ़ॉल्ट है, लेकिन यदि आप थोड़ा आगे पढ़ते हैं, तो आप देखेंगे कि यह PHP 5.4 के रूप में नया है। यदि आप पुराने संस्करण का उपयोग कर रहे हैं, तो डिफ़ॉल्ट वास्तव में 'ISO-8859-1' है, और आपको यह सुनिश्चित करना होगा कि आप डिफ़ॉल्ट व्यवहार पर निर्भर होने के बजाय इसे स्पष्ट रूप से 'UTF-8' के रूप में निर्दिष्ट करें।

htmlentities($string, 0, 'UTF-8'); 
+0

ऐसे मामले हैं जब आप उच्चारण वर्णों (ए, è, ì, ò, ù, ...) के लिए संस्थाएं उत्पन्न करना चाहते हैं, लेकिन HTML कोड को संरक्षित करना चाहते हैं (इसलिए "<" and ">" का आनंद न लें और पहले से बचने वाली इकाइयों से बचने से बचें। उन मामलों में, आप इस कोड का उपयोग कर सकते हैं: '$ string = str_replace (सरणी (" < "," > "), सरणी (" <", "> "), htmlentities ($ string, ENT_NOQUOTES, 'UTF-8', FALSE)) ; यह कोड PHP> = 5.2.3 के साथ संगत है – lucaferrario

7

मुझे पता चला कि यह इस समस्या का एक बहुत ही सरल समाधान है।

पहला भाग पाठ को एन्कोड करने का प्रयास करता है। यदि $ आउटपुट रिक्त स्ट्रिंग देता है, तो मान utf8 एन्कोड किया गया है और फिर HTML इकाइयां बनाई गई हैं।

$output = htmlentities($value, 0, "UTF-8"); 
if ($output == "") { 
    $output = htmlentities(utf8_encode($value), 0, "UTF-8"); 
} 

उदाहरण:

Montréal 

आउटपुट:

Montr&eacute;al 
संबंधित मुद्दे