以下是代码:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>test</title>
</head><body>
<h1>网页测试.....</h1>
<hr />
<?php
echo $_GET['id'];
echo "<br>";
echo iconv("GB2312","UTF-8",$_GET['id']);
?>
<br />
<br />
<a href="?id=录" target="_self">荣誉录</a>
</body>
</html>id=录 或者 id=荣誉录 都会出现乱码。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>test</title>
</head><body>
<h1>网页测试.....</h1>
<hr />
<?php
echo $_GET['id'];
echo "<br>";
echo iconv("GB2312","UTF-8",$_GET['id']);
?>
<br />
<br />
<a href="?id=录" target="_self">荣誉录</a>
</body>
</html>id=录 或者 id=荣誉录 都会出现乱码。
网页内容已经是UTF8了
为什么还有从GB2312转成UTF-8?
echo iconv("GB2312","UTF-8",$_GET['id']);这样当然不行
只是测试;
主要是$_GET['id']的值是乱码。
id='' 的值改为其它内容没有发现有乱码现象。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>test</title>
</head>
<body>
<h1>网页测试.....</h1>
<hr />
<?php
echo $_GET['id']; // 这句输出没有问题
echo "<br>";
echo iconv("GB2312","UTF-8",$_GET['id']); //这句输出是乱码,因为你本来就是UTF8的,非要转成GB2312
?>
<br />
<br />
<a href="?id=录" target="_self">荣誉录</a>
</body>
</html>
我是把代码保存为test.php
点击“荣誉录”进行调用
就会出现乱码(我没发图),
不要在地址栏输入:"http:www.xxxx.com/test.php?id=录"进行调用(这样客户端浏览器可能把数据以别的编码发到服务器端),
你们也可以把iconv这行语句屏蔽掉我的目的是让$_GET['id']返回正常的文字。