【发布时间】:2013-11-24 17:49:07
【问题描述】:
我写了一个小 php (test.php) 读取并显示传递给它的数据。
<?php $name = $_GET['name'];
echo $name;?>
当我执行以下 URL
http://localhost/test.php?name=Géo
显示的文字是:G�o
但是,当我从另一个网页提交“Géo”时:
<form method="get" action="test.php">
<input type="test" name="name">
<input type="Submit">
</form>
网址更改为http://localhost/test.php?name=G%C3%A9o
现在显示正确的文本:Géo
在第一种情况下,只有当我添加 utf8_encode($_GET['name']) 时,才会显示正确的文本 (Géo)。
我的问题: 是否可以知道数据是如何传递的,通过表单提交或直接从 URL 提交。如果不是,那么我应该对网页进行哪些更改,以便正确处理这两种情况,即在两种情况下都显示 Géo。
感谢您的帮助。
【问题讨论】:
-
在秒场景中,添加
utf8_encode( $_GET['name'] )会改变输入? -
在第二个场景中添加 utf8_encode 会将输入更改为:Géo
-
您的“Content-Type”标头是什么?它包含类似
charset=UTF-8? -
ttp://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd" rel="nofollow" target="_blank">w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> w3.org/1999/xhtml" xml:lang="en" lang="en">
标签: php html forms url-encoding