PHP变量的编码如何转换!
有两个页面index.html(GBK编码)search.php(UTF-8编码)html页面中有个搜索框!参数为q!点搜索提交search.php?q=汉字我想知道的是...
有两个页面index.html(GBK编码) search.php(UTF-8编码)
html页面中有个搜索框!参数为q!
点搜索提交search.php?q=汉字
我想知道的是在PHP页面中就是乱码了!该如何转换!
$qq=$_GET['q'];
$qqq = urldecode($qq);
$aa = iconv("UTF-8","GB2312",$qqq);
$q = urldecode($aa);
echo $q;
这样写对吗?最好帮忙把代码写出来! 展开
html页面中有个搜索框!参数为q!
点搜索提交search.php?q=汉字
我想知道的是在PHP页面中就是乱码了!该如何转换!
$qq=$_GET['q'];
$qqq = urldecode($qq);
$aa = iconv("UTF-8","GB2312",$qqq);
$q = urldecode($aa);
echo $q;
这样写对吗?最好帮忙把代码写出来! 展开
3个回答
展开全部
老兄,这个帮你看过了。首先你的思路是正确的,让我们来看看到底哪出了问题。
1.首先查看处理页面(search.php)浏览器的编码是什么,要是GB2312的话当然是乱码了,因为你已经给转成UTF-8了。调成UTF-8,如果正确显示说明你只是自己大意了。下面的就不用看了。
2.你的提交页面(index.html)我感觉应该是(index.php),因为“.html”文件应该不能嵌入php代码。我的代码是这样:
////////////////////index.php:(编码GB-2312)
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>Untitled</title>
</head>
<body>
<?php $test1="汉字";
$test2=urlencode($test1);
?>
<a href="search.php?q=<?php echo $test2 ; ?>">a</a>
</body>
</html>
////////////////////search.php:(编码UTF-8)
<?php
$test1 =urldecode($_GET['q']);
$test2 = iconv("GB2312","UTF-8",$test1);
echo $test2;
?>
你的iconv函数好像写错了,从GBK到UTF-8应该是“iconv("GB2312","UTF-8",$test1);”你好像写反了。希望这些可以给你帮助,祝你开心。
1.首先查看处理页面(search.php)浏览器的编码是什么,要是GB2312的话当然是乱码了,因为你已经给转成UTF-8了。调成UTF-8,如果正确显示说明你只是自己大意了。下面的就不用看了。
2.你的提交页面(index.html)我感觉应该是(index.php),因为“.html”文件应该不能嵌入php代码。我的代码是这样:
////////////////////index.php:(编码GB-2312)
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>Untitled</title>
</head>
<body>
<?php $test1="汉字";
$test2=urlencode($test1);
?>
<a href="search.php?q=<?php echo $test2 ; ?>">a</a>
</body>
</html>
////////////////////search.php:(编码UTF-8)
<?php
$test1 =urldecode($_GET['q']);
$test2 = iconv("GB2312","UTF-8",$test1);
echo $test2;
?>
你的iconv函数好像写错了,从GBK到UTF-8应该是“iconv("GB2312","UTF-8",$test1);”你好像写反了。希望这些可以给你帮助,祝你开心。
展开全部
使用举例:
1、把 GBK 编码字串转换成 UTF-8 编码字串 view plaincopy to clipboardprint?
<?php
header("content-Type: text/html; charset=Utf-8");
echo mb_convert_encoding("你是我的好朋友","UTF-8","GBK");
?>
2、把 UTF-8 编码字串转换成 GB2312 编码字串 view plaincopy to clipboardprint?
// 注意将此文件存盘成 utf-8 编码格式文件再测试
<?php
header("content-Type:text/html;charset=gb2312");
echo mb_convert_encoding("你是我的好朋友","gb2312","utf-8");
?>
// 注意将此文件存盘成 utf-8 编码格式文件再测试
<?php
header("content-Type: text/html; charset=gb2312");
echo mb_convert_encoding("你是我的好朋友","gb312","utf-8");
?>
3、对整个页面进行转换
该方法适用所有编码环境。这样把前128个字符以外(显示字符)的字符集都用 NCR(Numeric character reference,如“汉字”将转换成“汉字”这种形式)来表示,这样的编码在任意编码环境下页面都能正 常显示。
在php文件的头部加上下面三行代码:
view plaincopy to clipboardprint?
mb_internal_encoding(”gb2312″); // 这里的gb2312是你网站原来的编码
mb_http_output(”HTML-ENTITIES”);
ob_start(’mb_output_handler’);
mb_internal_encoding(”gb2312″); // 这里的gb2312是你网站原来的编码 mb_http_output(”HTML-ENTITIES”); ob_start(’mb_output_handler’);
使用mb_convert_encoding 函数需启用PHP 的mbstring (multi-byte string)扩展。
1、把 GBK 编码字串转换成 UTF-8 编码字串 view plaincopy to clipboardprint?
<?php
header("content-Type: text/html; charset=Utf-8");
echo mb_convert_encoding("你是我的好朋友","UTF-8","GBK");
?>
2、把 UTF-8 编码字串转换成 GB2312 编码字串 view plaincopy to clipboardprint?
// 注意将此文件存盘成 utf-8 编码格式文件再测试
<?php
header("content-Type:text/html;charset=gb2312");
echo mb_convert_encoding("你是我的好朋友","gb2312","utf-8");
?>
// 注意将此文件存盘成 utf-8 编码格式文件再测试
<?php
header("content-Type: text/html; charset=gb2312");
echo mb_convert_encoding("你是我的好朋友","gb312","utf-8");
?>
3、对整个页面进行转换
该方法适用所有编码环境。这样把前128个字符以外(显示字符)的字符集都用 NCR(Numeric character reference,如“汉字”将转换成“汉字”这种形式)来表示,这样的编码在任意编码环境下页面都能正 常显示。
在php文件的头部加上下面三行代码:
view plaincopy to clipboardprint?
mb_internal_encoding(”gb2312″); // 这里的gb2312是你网站原来的编码
mb_http_output(”HTML-ENTITIES”);
ob_start(’mb_output_handler’);
mb_internal_encoding(”gb2312″); // 这里的gb2312是你网站原来的编码 mb_http_output(”HTML-ENTITIES”); ob_start(’mb_output_handler’);
使用mb_convert_encoding 函数需启用PHP 的mbstring (multi-byte string)扩展。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
...自己解决....
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询