PHP页面跳转后传值编码问题

作者:Jeen 发布于:2013-4-21 19:41 Sunday 分类:Web开发

网站分页或进行属性筛选时,如果没有使用Ajax动态刷新模块,而是采用post或get的模式传参,经常会碰到中文属性乱码的问题。 至于urlencode  urldecode 在传值前及值接收时的操作,就不用说了

中文网站,是用浏览器访问时,站点代码采用utf8进行编码, 跳转所传的中文却被转换成了GBK的编码,这个时候就需要进行一些特别处理了,就是转码。

当然转码之前首先要判断一下字符串是否已经是utf8的编码了,功能函数如下

// Returns true if $string is valid UTF-8 and false otherwise.
function is_utf8($word)
{
if (preg_match("/^([".chr(228)."-".chr(233)."]{1}[".chr(128)."-".chr(191)."]{1}[".chr(128)."-".chr(191)."]{1}){1}/",$word) == true || preg_match("/([".chr(228)."-".chr(233)."]{1}[".chr(128)."-".chr(191)."]{1}[".chr(128)."-".chr(191)."]{1}){1}$/",$word) == true || preg_match("/([".chr(228)."-".chr(233)."]{1}[".chr(128)."-".chr(191)."]{1}[".chr(128)."-".chr(191)."]{1}){2,}/",$word) == true)
{
return true;
}
else
{
return false;
}
} // function is_utf8

如果不是,就使用 iconvmb_convert_encodingutf8_encode  对此参数进行转码,至于这几个转码函数   php手册中有详细介绍,这边就不赘述了,不同的服务器环境 可能需要不同的函数,不然可能还会出问题

好了就记到这边  :-)

标签: php

发表评论:

©2010-2024 Jeen All Rights Reserved.Powered by emlog 京ICP备15058100号-1