Home >Backend Development >PHP Tutorial >Share PHP code UTF-8 and Unicode encoding and mutual conversion (multi-language)

Share PHP code UTF-8 and Unicode encoding and mutual conversion (multi-language)

WBOY
WBOYOriginal
2016-07-29 09:14:06906browse

PHP UTF-8和Unicode编码互转

/** 
     * //将内容进行UNICODE编码
     * utf-8 转unicode
     * 
     * @param string $name
     * @return string
     */
    function utf8_unicode($name){  
        $name = iconv('UTF-8', 'UCS-2', $name);  
        $len  = strlen($name);  
        $str  = '';  
        for ($i = 0; $i < $len - 1; $i = $i + 2){  
            $c  = $name[$i];  
            $c2 = $name[$i + 1];  
            if (ord($c) > 0){   //两个字节的文字  
                $str .= '\u'.base_convert(ord($c), 10, 16).str_pad(base_convert(ord($c2), 10, 16), 2, 0, STR_PAD_LEFT);  
                //$str .= base_convert(ord($c), 10, 16).str_pad(base_convert(ord($c2), 10, 16), 2, 0, STR_PAD_LEFT);  
            } else {  
                $str .= '\u'.str_pad(base_convert(ord($c2), 10, 16), 4, 0, STR_PAD_LEFT);  
                //$str .= str_pad(base_convert(ord($c2), 10, 16), 4, 0, STR_PAD_LEFT);  
            }  
        }  
        $str = strtoupper($str);//转换为大写  
        return $str;  
    }  
  
    /** 
     * unicode 转 utf-8 
     * 
     * @param string $name 
     * @return string 
     */  
    function unicode_decodessss($name)  
    {  
        $name = strtolower($name);  
        // 转换编码,将Unicode编码转换成可以浏览的utf-8编码  
        $pattern = '/([\w]+)|(\\\u([\w]{4}))/i';  
        preg_match_all($pattern, $name, $matches);  
        if (!empty($matches))  
        {  
            $name = '';  
            for ($j = 0; $j < count($matches[0]); $j++)  
            {  
                $str = $matches[0][$j];  
                if (strpos($str, '\\u') === 0)  
                {  
                    $code = base_convert(substr($str, 2, 2), 16, 10);  
                    $code2 = base_convert(substr($str, 4), 16, 10);  
                    $c = chr($code).chr($code2);  
                    $c = iconv('UCS-2', 'UTF-8', $c);  
                    $name .= $c;  
                }  
                else  
                {  
                    $name .= $str;  
                }  
            }  
        }  
        return $name;  
    }  

调用及结果:
$utf8_str = '我';

//这是汉字“你”的Unicode编码
$unicode_str = '\u4f60';

//输出 6211
echo utf8_unicode($utf8_str) . "<br/>";

//输出汉字“你”
echo unicode_decodes($unicode_str);

注:  由于浏览器默认会解读,所以要看源代码
\U6211<br/>
你

以上就介绍了分享PHP代码 UTF-8和Unicode编码互转(多语言),包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn