用于数据库选择的 URL 中的特殊字符


Special characters in URL for DB selection

我正在尝试在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从数据库中选择时它会正常工作,但是当我显示参数时,它显示为: Ã¥

我不知道如何解决这个问题。任何帮助,不胜感激。

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

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

然后,准备您的查询。

这应该行得通。

我希望这有所帮助!