这是我的代码:
<HTML>
<head>
<title>Building a Form</title>
</head>
<body>
<?php
$search=htmlentities($_GET["search"]);
$self=htmlentities(urldecode($_SERVER['PHP_SELF']));
if($search=='')
{
echo ('
<form action="'.$self.'" method="get">
<label>
Search: <input type="text" name="search"/>
</label>
<input type="submit" value="Go!"/>
</form>');

}else 
{
echo "The search string is:<strong>$search</strong>";
}
?>
</body>
</HTML>

解决方案 »

  1.   

    输出 $_GET["search"] 看看是什么
      

  2.   

    输入:中文
    输出:
    The search string is:中æ��
      

  3.   

    中æ�� 。这个应该是西欧字符集ISO-8859-1
    建议你使用GBK,或者UTF-8编码。可以在 <head> 标签内增加一个 <meta> 声明编码
    <meta http-equiv="charset" content="UTF-8">
      

  4.   

    改成:
    <HTML>
    <head>
    <meta http-equiv="charset" content="UTF-8">
    <title>Building a Form</title>
    </head>
    <body>
    结果一样,这是为什么呀?
      

  5.   

    htmlentities()的第三个参数缺省值也是西欧字符集,但我并不了解这个参数的用处。只是建议你先不用这个函数,直接输出看看。或者给它补上第三个参数 UTF-8
    $search=htmlentities($_GET["search"], ENT_QUOTES, 'UTF-8');