我写了一个小的php(test.php),它读取并显示传递给它的数据。
<?php $name = $_GET['name'];
echo $name;?>
执行以下网址时
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。
感谢您的帮助。
答案 0 :(得分:0)
您可以添加注册。表达式,它将检查参数是否包含%
。因为编码参数可能包含%
。
但是,如果您执行的url由于某种原因包含%
,问题就会重新出现......