用于DB选择的URL中的特殊字符

时间:2015-01-13 11:33:25

标签: php

我尝试在URL中使用特殊的danish个字符(æøå)作为GET参数。例如,我有这个网址:

     http://example.com?name=åge

该URL将自动转换为ASCII等效,因此在URL中将显示:

    http://example.com?name=%E5ge

当我访问并打印出该值时,它可以正常工作,并将该参数显示为: 年龄

但是,我使用它来选择我的数据库中的东西,这是行不通的。如果我在URL中使用ASCII版本,它将不会从数据库中选择任何内容,只是给我一个空的结果。如果我强制URL不使用ASCII,那么它是:http://example.com?name=åge它从数据库中选择时可以正常工作,但当我显示参数时,它显示如下: Ã¥

我不知道如何解决这个问题。任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:1)

我会将参数转换为UTF-8,然后为UTF-8查询准备数据库,如下所示:

$name = utf8_encode($_GET['name']);
mysqli_query($mysqli_connector, "SET NAMES UTF8");

然后,准备好您的查询。

这应该有效。

我希望有所帮助!