3v4l.org

run code in 200+ php & hhvm versions
Bugs & Features
<?php $charset = 'UTF-8'; // PHP Meh. $encoding = 'UTF-8'; header('Content-Type: application/xml; charset=' . $charset); ini_set('default_charset', $charset); mb_internal_encoding('UTF-8'); $rawUtf8Text = '豁ヲ蠢・'; $encodedText = mb_encode_numericentity($rawUtf8Text, [0x0, 0xffff, 0, 0xffff], 'UTF-8'); $clearText = mb_decode_numericentity($encodedText, [0x0, 0xffff, 0, 0xffff], 'UTF-8'); echo "RAW UTF-8 STRING: {$clearText}\nNUMERICALLY ENCODED STRING: {$encodedText}\nROUND TRIP ENCODE/DECODE STRING: {$clearText}\n"; $xml = '<first-name>' . $encodedText . '</first-name>'; echo "ENCODED XML TO BE PARSED:{$xml}\n"; $decodedFromXml = mb_decode_numericentity(strip_tags($encodedText), [0x0, 0xffff, 0, 0xffff], 'UTF-8'); echo "DECODED STRING FROM XML: {$decodedFromXml}\n";
Output for 5.6.0 - 5.6.38, hhvm-3.15.4 - 3.22.0, 7.0.0 - 7.2.12
RAW UTF-8 STRING: 豁ヲ蠢・ NUMERICALLY ENCODED STRING: &#35905;&#65382;&#34850;&#12539; ROUND TRIP ENCODE/DECODE STRING: 豁ヲ蠢・ ENCODED XML TO BE PARSED:<first-name>&#35905;&#65382;&#34850;&#12539;</first-name> DECODED STRING FROM XML: 豁ヲ蠢・