Home > Article > Backend Development > PHP anti-Chinese characters to Unicode encoding implementation program_PHP tutorial
This article will introduce to you the program method of converting Chinese characters into Unicode encoding in PHP. Friends who need to know more can refer to it.
Program
The code is as follows
| Copy code
| ||||
* $str original string * $encoding The encoding of the original string, the default is GBK * $prefix encoded prefix, default "" * $postfix encoded suffix, default ";" */ function unicode_encode($str, $encoding = 'GBK', $prefix = '', $postfix = ';') { $str = iconv($encoding, 'UCS-2', $str); $arrstr = str_split($str, 2); $unistr = ''; for($i = 0, $len = count($arrstr); $i < $len; $i++) { $dec = hexdec(bin2hex($arrstr[$i])); $unistr .= $prefix . $dec . $postfix; } Return $unistr; } /** * $str Unicode encoded string * $encoding The encoding of the original string, the default is GBK * $prefix The prefix of the encoded string, the default is "" * $postfix suffix of the encoded string, default ";" */ function unicode_decode($unistr, $encoding = 'GBK', $prefix = '', $postfix = ';') { $arruni = explode($prefix, $unistr); $unistr = ''; for($i = 1, $len = count($arruni); $i < $len; $i++) { If (strlen($postfix) > 0) { $arruni[$i] = substr($arruni[$i], 0, strlen($arruni[$i]) - strlen($postfix)); } $temp = intval($arruni[$i]); $unistr .= ($temp < 256) ? chr(0) . chr($temp) : chr($temp / 256) . chr($temp % 256); } Return iconv('UCS-2', $encoding, $unistr); } |
The code is as follows | Copy code |
//GBK string test $str = 'Haha'; echo $str.' '; $unistr = unicode_encode($str); echo $unistr.' '; // 哈哈 ; $str2 = unicode_decode($unistr); echo $str2.' '; //Haha //UTF-8 string test $utf8_str = iconv('GBK', 'UTF-8', $str); echo $utf8_str.' '; // ???? Note: UTF is displayed as garbled code under GBK! Coding testing for switchable browsers $utf8_unistr = unicode_encode($utf8_str, 'UTF-8'); echo $utf8_unistr.' '; // 哈哈 ; $utf8_str2 = unicode_decode($utf8_unistr, 'UTF-8'); echo $utf8_str2.' '; // ???? //Other suffix and prefix tests $prefix_unistr = unicode_encode($str, 'GBK', "u", ''); echo $prefix_unistr.' '; // u60u98u62u21704u21704u60u47u98u62 $profix_unistr2 = unicode_decode($prefix_unistr, 'GBK', "u", ''); echo $profix_unistr2.' '; //Haha |