में संख्यात्मक HTML इकाइयों को डीकोड करने के लिए कैसे मैं संख्यात्मक इकाई से स्ट्रिंग में एन्कोडेड लंबे डैश को डीकोड करने का प्रयास कर रहा हूं, लेकिन ऐसा लगता है कि मुझे ऐसा कोई फ़ंक्शन नहीं मिल रहा है जो इसे ठीक से कर सके।PHP
सबसे अच्छा जो मैंने पाया वह mb_decode_numericentity() है, हालांकि, किसी कारण से यह लंबे डैश और कुछ अन्य विशेष पात्रों को डीकोड करने में विफल रहता है।
$str = '–';
$str = mb_decode_numericentity($str, array(0xFF, 0x2FFFF, 0, 0xFFFF), 'ISO-8859-1');
यह "?" वापस आ जाएगा।
कोई भी इस समस्या को हल करने के बारे में जानता है?
आईएसओ -885 9 -1 में लंबे समय तक डैश मौजूद है? –
@ कोलश्रेपल: दरअसल नहीं। यह विंडोज सीपी 1252 में मौजूद है, जो समान है, लेकिन आईएसओ -885 9 -1 नहीं। बेहतर: यूटीएफ -8 का उपयोग करें। – bobince
निश्चित रूप से, आईएसओ/आईईसी 885 9 -1 (लैटिन -1) में कोई लंबा डैश नहीं है। वास्तव में, यह एक यूनिकोड चरित्र है, और यूटीएफ -8 का उपयोग करने में मदद मिली। यह मेरी गलती थी कि मैं ब्राउज़र में एन्कोडिंग को बदलना भूल गया। सभी को धन्यवाद! – Yuriy