WEB应用中,UTF-8编码和GB2312编码(图)
2021-01-31
在当前的Web应用程序中php url编码转换,UTF-8编码和GB2312编码共存。例如,百度()和Google()的URL编码分别为GB2312编码和UTF-8编码。编码共存引起的乱码问题给WEB应用程序的开发带来了很多麻烦,因此统一编码是解决WEB开发中这一问题的主要途径。现在的问题是,我们必须同时处理UTF-8编码和GB2312。例如,我们要计算搜索引擎访问的网站的关键字。
例如,我们搜索“中文”一词,然后观察浏览器地址栏。
通过百度获得的结果是:
%D6%D0%CE%C4
通过Google获得的结果是:
%E4%B8%AD%E6%96%87&aq = f&oq =
红色字符是单词“中文”的URL编码php url编码转换,即baidu_urlencode(“中文”)=%D6%D0%CE%C4,google_urlencode(“ Chinese”)=%E4%B8%AD% E6%96%87,由于编码不同而有明显差异。
PHP中有一个mb_convert_encoding函数,它为不同编码的转换带来了便利。源代码如下(示例PHP源代码文档以UTF-8编码存档):
header('Content-type: text/html; charset=utf-8'); echo '
百度关键词URL编码转换示例:
'; $urlBaidu = 'http://www.baidu.com/s?wd=%D6%D0%CE%C4'; $arrParse = parse_url($urlBaidu); parse_str($arrParse ['query'],$output); echo '乱码:' . $output['wd'] . '
'; //将gb2312编码转换成utf-8编码 $strUTF8 = mb_convert_encoding($output['wd'], 'utf-8', 'gb2312'); echo '可读码:' . $strUTF8 . '
'; echo '
谷歌关键词URL编码转换示例:
'; $urlGoogle = 'http://www.google.cn/search?hl=zh-CN&source=hp&q=%E4%B8%AD%E6%96%87&aq=f&oq='; $arrParse = parse_url($urlGoogle); parse_str($arrParse ['query'],$output); //谷歌关键词URL编码是utf-8,不用再作转换 echo '可读码:' . $output['q'] . '
';