以下是代码:
<!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=荣誉录    都会出现乱码。

解决方案 »

  1.   

    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    网页内容已经是UTF8了
    为什么还有从GB2312转成UTF-8?
    echo iconv("GB2312","UTF-8",$_GET['id']);这样当然不行
      

  2.   

    $_GET['id'] = iconv("GB2312","UTF-8",$_GET['id']);
      

  3.   

    注意文件编码,注意url中有中文要urlencode或者base64_encode一下那个中文参数。
      

  4.   

    $_GET['id'] = iconv("GB2312","UTF-8",$_GET['id']);
    只是测试;
    主要是$_GET['id']的值是乱码。
    id='' 的值改为其它内容没有发现有乱码现象。
      

  5.   

    以点击链接形式发送到服务端整个文件是UTF-8编码的服务端设置为UTF-8
      

  6.   

    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />文件存储编码utf-8,不需要转换,直接输出,就不可能会有乱码。
      

  7.   

    还会有乱码。就检查你APACHE/PHP里的设置。
      

  8.   

    试了,文件保存为UTF-8格式,结果如下面的注释
    <!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>
      

  9.   

    我这里没有任何问题。文件编码也要是utf-8。
      

  10.   

    谢谢大家的回贴!!!
    我是把代码保存为test.php
    点击“荣誉录”进行调用
    就会出现乱码(我没发图),
    不要在地址栏输入:"http:www.xxxx.com/test.php?id=录"进行调用(这样客户端浏览器可能把数据以别的编码发到服务器端),
    你们也可以把iconv这行语句屏蔽掉我的目的是让$_GET['id']返回正常的文字。