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
如果不是,就使用 iconv 或 mb_convert_encoding 或 utf8_encode 对此参数进行转码,至于这几个转码函数 php手册中有详细介绍,这边就不赘述了,不同的服务器环境 可能需要不同的函数,不然可能还会出问题
好了就记到这边
标签: php
发表评论: