दिलचस्प पोस्ट
कोणीय $ q, कैसे कई के भीतर और के लिए एक लूप के भीतर चेन बहस करने के लिए जीआईटी में एक ही शाखा को क्लोन कैसे करें? एंड्रॉइड हैलो, गैलरी ट्यूटोरियल – "आर। स्टोलेबल का समाधान नहीं किया जा सकता" जावा – जेपीए – @ वर्जन एनोटेशन निर्धारित करें कि डिवाइस स्मार्टफोन या टैबलेट है? रिक्त स्थान के साथ वातावरण चर कैसे सेट करें? सभी इंस्टॉल किए गए ऐप्स की सूची प्राप्त करें एक विशिष्ट गतिविधि के बजाय कार्य को पुनर्स्थापित करने की अधिसूचना? मैं एक एन्यूम कैसे गणना करूं? कैसे UIImage के लिए एक CVImageBufferRef कन्वर्ट करने के लिए रेखा खींचें और उसे पैनल में कैसे चुनें आप Xib फ़ाइलों से कस्टम UITableViewCells कैसे लोड करते हैं? कस्टम लॉक स्क्रीन का विकास करना Xcode में, कैसे विशिष्ट स्रोत फ़ाइलों में सभी चेतावनियों को दबाने के लिए? रिकर्सिव फ़ंक्शन निर्दिष्ट मान वापस नहीं करता है

आईओओ -885 9 में utf8-characters को परिवर्तित करें और पीएचपी में वापस जाएं

मेरी कुछ स्क्रिप्ट अलग एन्कोडिंग का उपयोग कर रही है, और जब मैं उन्हें गठबंधन करने का प्रयास करता हूं, तो यह एक समस्या है।

लेकिन मैं उन एन्कोडिंग को बदल नहीं सकता जो वे उपयोग करते हैं, इसके बजाय मैं स्क्रिप्ट ए से परिणाम के एन्कोडिड को बदलना चाहता हूं, और इसे स्क्रिप्ट बी में पैरामीटर के रूप में प्रयोग करना चाहता हूं।

इसलिए: क्या PHP में यूटीएफ -8 से आईएसओ -88591 की स्ट्रिंग बदलने का कोई आसान तरीका है? मैंने utf_encode और _decode पर ध्यान दिया है, लेकिन वे ऐसा नहीं करते जो मैं चाहता हूं। वहाँ क्यों नहीं किसी भी "utf2iso ()" – समारोह, या समान exsist?

मुझे नहीं लगता कि मेरे पास ऐसे पात्र हैं जो आईएसओ प्रारूप में नहीं लिखे जा सकते हैं, ताकि एक बड़ा मुद्दा न हो।

वेब के समाधान से एकत्रित समाधान "आईओओ -885 9 में utf8-characters को परिवर्तित करें और पीएचपी में वापस जाएं"

iconv() या mb_convert_encoding() पर एक नज़र डालें बस वैसे: क्यों utf8_encode() और utf8_decode() आपके लिए काम नहीं करते?

utf8_decode – एक स्ट्रिंग को आईएसओ -885 9 -1 वर्णों को यूटीएफ -8 के साथ एन्कोड किया जाता है जो एकल-बाइट आईएसओ -8859-1

utf8_encode – एक ISO-8859-1 स्ट्रिंग को यूटीएफ -8 में एन्कोड करता है

तो अनिवार्य रूप से

 $utf8 = 'ÄÖÜ'; // file must be UTF-8 encoded $iso88591_1 = utf8_decode($utf8); $iso88591_2 = iconv('UTF-8', 'ISO-8859-1', $utf8); $iso88591_2 = mb_convert_encoding($utf8, 'ISO-8859-1', 'UTF-8'); $iso88591 = 'ÄÖÜ'; // file must be ISO-8859-1 encoded $utf8_1 = utf8_encode($iso88591); $utf8_2 = iconv('ISO-8859-1', 'UTF-8', $iso88591); $utf8_2 = mb_convert_encoding($iso88591, 'UTF-8', 'ISO-8859-1'); 

सभी को ऐसा करना चाहिए – utf8_en/decode() साथ कोई विशेष एक्सटेंशन की आवश्यकता नहीं है, mb_convert_encoding() को ext / mbstring और iconv() आवश्यकता होती है, जिसे ext / iconv की आवश्यकता होती है।

सबसे पहले, विभिन्न एन्कोडिंग का उपयोग न करें। यह एक गड़बड़ी की ओर जाता है, और यूटीएफ -8 निश्चित रूप से आपको हर जगह उपयोग करना चाहिए।

संभावना है कि आपका इनपुट आईएसओ -8859-1 नहीं है, लेकिन कुछ और (आईएसओ -8859-15, विंडोज -1252)। उन लोगों से बदलने के लिए, iconv या mb_convert_encoding उपयोग करें

फिर भी, utf8_encode और utf8_decode आईएसओ utf8_decode लिए काम करना चाहिए यह अच्छा होगा यदि आप एक फ़ाइल या यूयूएनकोड या बेस 64 उदाहरण स्ट्रिंग के लिए एक लिंक पोस्ट कर सकते हैं जिसके लिए रूपांतरण विफल रहता है या अप्रत्याशित परिणाम उत्पन्न करता है।

सेट मेटा टैग में सिर के रूप में

  <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" /> 

लिंक वर्ण का उपयोग करने के लिए http://www.i18nqa.com/debug/utf8-debug.html का उपयोग करें।

तो जैसे str_replace का उपयोग करें

  $find = array('“', '’', '…', '—', '–', '‘', 'é', 'Â', '•', 'Ëœ', 'â€'); // en dash $replace = array('“', ''', '…', '—', '–', ''', 'é', '', '•', '˜', '”'); $content = str_replace($find, $replace, $content); 

इसकी विधि मैं उपयोग करता हूँ और बहुत कुछ मदद करता हूँ धन्यवाद!

आपको iconv पैकेज का उपयोग करने की आवश्यकता है, विशेष रूप से इसके iconv फ़ंक्शन।

मैं इस फ़ंक्शन का उपयोग करता हूं:

 function formatcell($data, $num, $fill=" ") { $data = trim($data); $data=str_replace(chr(13),' ',$data); $data=str_replace(chr(10),' ',$data); // translate UTF8 to English characters $data = iconv('UTF-8', 'ASCII//TRANSLIT', $data); $data = preg_replace("/[\'\"\^\~\`]/i", '', $data); // fill it up with spaces for ($i = strlen($data); $i < $num; $i++) { $data .= $fill; } // limit string to num characters $data = substr($data, 0, $num); return $data; } echo formatcell("YES UTF8 String Zürich", 25, 'x'); //YES UTF8 String Zürichxxx echo formatcell("NON UTF8 String Zurich", 25, 'x'); //NON UTF8 String Zurichxxx 

मेरे ब्लॉग http://www.unexpectedit.com/php/php-handling-non-english-characters-utf8 में अपना फ़ंक्शन देखें

मैंनें इस्तेमाल किया:

 function utf8_to_html ($data) { return preg_replace( array ( '/ä/', '/ö/', '/ü/', '/é/', '/à/', '/è/' ), array ( '&auml;', '&ouml;', '&uuml;', '&eacute;', '&agrave;', '&egrave;' ), $data ); } 

मेरे मामले में उन अक्षरों वाले नाम वाले फाइलों के बाद अपलोड किए गए थे, वे फ़ाइलज़िला के साथ भी दिखाई नहीं दे रहे थे! सीपेनल फाइलमैनेजर में उन्हें दिखाया गया था? (काली पृष्ठभूमि के नीचे) और इस संयोजन ने इसे ब्राउज़र पर सही तरीके से दिखाया (HTML दस्तावेज़ पश्चिमी एन्कोडेड है):

 $dspFileName = utf8_decode(htmlspecialchars(iconv(mb_internal_encoding(), 'utf-8', basename($thisFile['path']))) ); 

उपयोग करने के लिए यह बहुत बेहतर है

$ value = mb_convert_encode ($ मान, 'HTML-ENTITIES', 'UTF-8');

विशेषकर जब आप 'आईएसओ -885 9 -1' वर्णों को जमा करने के लिए एजेएक्स कॉल का उपयोग कर रहे हैं यह चीनी, जापानी, चेक, जर्मन और कई अन्य भाषाओं के लिए काम करता है।

html_entity_decode() और htmlentities() उपयोग करें

 $html = html_entity_decode(htmlentities($html, ENT_QUOTES, 'UTF-8'), ENT_QUOTES , 'ISO-8859-1'); 

htmlentities() आपके इनपुट को UTF8 और html_entity_decode() प्रारूपित करता है इसे ISO-8859-1 html_entity_decode() वापस प्रारूपित करता है

 function parseUtf8ToIso88591(&$string){ if(!is_null($string)){ $iso88591_1 = utf8_decode($string); $iso88591_2 = iconv('UTF-8', 'ISO-8859-1', $string); $string = mb_convert_encoding($string, 'ISO-8859-1', 'UTF-8'); } }