时间: 2011-07-12 / 分类: WEB后端编程 - 开发与实践 / 浏览次数: / 24 个评论 发表评论
PHP的字符编码函数mb_convert_encoding
12条经典摄影技巧
WEB前端开发中的一些编程风格和书...
CSS Hack浏览器兼容IE6+IE7+IE8+IE9+FF
项目前端开发的架构

案例:

最近一段时间比较喜欢用Opera浏览器,Opera也可以定制搜索引擎,在定制搜索引擎http://s.amiku.cn的时候,发现同样的搜索结果的URL在Microsoft IE和Mozilla Firefox以及Google Chrome中都是正常的,而Opera返回的搜索结果是有乱码的,比如用IE和Firefox以及Chrome搜索“”的时候,返回的是

http:///?q=%E9%98%BF%E7%B1%B3%E9%85%B7

而用Opera搜索返回的是:

http://s.amiku.cn/?q=%B0%A2%C3%D7%BF%E1

由于编码的不同,所以会形成了乱码。

说明:

字符的UTF-8编码和GB2312的编码的结果的字符串是不同的,如:那是因为大部分中文搜索引擎是GB2312,而OPERA用的是UTF8,所以会乱码,如:

阿米酷 -> GB2312的Encode -> %B0%A2%C3%D7%BF%E1
阿米酷 -> utf-8的Encode ->%E9%98%BF%E7%B1%B3%E9%85%B7

解决:

通过PHP自带的 mb_convert_encoding ( urldecode ( $q ), ‘’, ‘gb2312’ ) 可以解决UTF-8编码和GB2312编码之间的转换问题。

mb_convert_encoding
( 4 >= 4.0.6, 5)

mb_convert_encoding — Convert character encoding

说明
string mb_convert_encoding ( string $str , string $to_encoding [, mixed $from_encoding ] )
Converts the character encoding of string str to to_encoding from optionally from_encoding .

参数

str
The string being encoded.

to_encoding
The type of encoding that str is being converted to.

from_encoding
Is specified by character code names before conversion. It is either an array, or a comma separated enumerated list. If from_encoding is not specified, the internal encoding will be used.

“auto” may be used, which expands to “ASCII,JIS,UTF-8,EUC-JP,SJIS”.

返回值
The encoded string.

范例

Example #1 mb_convert_encoding() example

<?php
/* Convert internal character encoding to SJIS */
$str = mb_convert_encoding($str, "SJIS");
/* Convert EUC-JP to UTF-7 */
$str = mb_convert_encoding($str, “UTF-7”, “EUC-JP”);/* Auto detect encoding from JIS, eucjp-win, sjis-win, then convert str to UCS-2LE */
$str = mb_convert_encoding($str, “UCS-2LE”, “JIS, eucjp-win, sjis-win”);/* “auto” is expanded to “ASCII,JIS,UTF-8,EUC-JP,SJIS” */
$str = mb_convert_encoding($str, “EUC-JP”, “auto”);
?>

  1. 版主,你这个站是我很喜欢的几个站之一,这几天一直比较忙,没有过来看看,今天来看一下,发现不少新东西,忍不住写几句,真是好样的,博主,我喜欢你!!!

    回复

  2. 版主,看的还不是很明白,希望能再详细一下,真的谢谢了。我是你的站点粉丝哦,每天必来的。I love you!

    回复

  站点地图 | 关于我 | 返回顶部
Copyright © 2001-2013 { amiku.cn | zhangshunjin.com }. Powered by 

阿米酷

张顺金


浙ICP备11002820号-1