यह इनकोडिंग: \u00d6
यह डीकोड: Ö
आप u00d6 तरह तार एनकोड कैसे?
क्या समारोह मैं कुछ पठनीय में कि स्ट्रिंग डिकोड करने के लिए उपयोग करने के लिए?
\u00d6asdf -> Öasdf
यह इनकोडिंग: \u00d6
यह डीकोड: Ö
आप u00d6 तरह तार एनकोड कैसे?
क्या समारोह मैं कुछ पठनीय में कि स्ट्रिंग डिकोड करने के लिए उपयोग करने के लिए?
\u00d6asdf -> Öasdf
आम तौर पर यह urldecode तरीका होगा, लेकिन यह आपके जैसे, यूनिकोड वर्ण पर लागू नहीं होता। ऐसा
function unicode_urldecode($url)
{
preg_match_all('/%u([[:alnum:]]{4})/', $url, $a);
foreach ($a[1] as $uniord)
{
$utf = '&#x' . $uniord . ';';
$url = str_replace('%u'.$uniord, $utf, $url);
}
return urldecode($url);
}
UTF-8 में बदलने के लिए,: बजाय यह एक प्रयास करें
preg_replace('/\\\\u([0-9a-f]{4})/ie',
'mb_convert_encoding("&#x$1;", "UTF-8", "HTML-ENTITIES")',
$string);
इस के बाद से JSON में इस्तेमाल किया बचाव किया जाता है, एक और विकल्प json_decode
होगा। लेकिन यह भी (\uXXXX
भागने दृश्यों के उनके अलावा) से पहले दोहरे उद्धरण चिह्नों और बैकस्लैश से बचने और स्ट्रिंग को दोहरे उद्धरण चिह्नों को जोड़ने की आवश्यकता होगी। अगर, हालांकि, स्ट्रिंग वास्तव में JSON-एन्कोड किया गया है और वह है क्या मूल रूप से सवाल प्रेरित है, सही उत्तर स्वाभाविक रूप से उपरोक्त विधि के बजाय json_decode
का उपयोग किया जाएगा।
गलत यहाँ कई चीजें हैं ... आप% \ uXXXX की uXXXX बजाय स्थानापन्न, संस्थाओं के साथ दृश्यों (जो स्ट्रिंग प्रदर्शित करने के लिए ठीक होगा की जगह, सिवाय अब आप htmlspecialchars एनकोड स्ट्रिंग दोगुना करने के लिए नहीं बताने के लिए है और बेशक, अब आप एचटीएमएल एंटाइटिट्स को अलग नहीं करते हैं जो मूल रूप से जेनरेट किए गए लोगों के लिए स्ट्रिंग में हैं); अंत में आप urldecode जो सवाल के साथ कोई संबंध नहीं है कहते हैं - यूआरएल एन्कोडिंग encodes बाइट्स (अधिकतम मूल्य% एफएफ है) और यह निश्चित रूप से आपने अभी बनाया एचटीएमएल संस्थाओं को डिकोड नहीं है। – Artefacto