我试图在URL中使用特殊的danish
字符作为GET参数。因此,例如,我有这个网址:数据库选择的URL中的特殊字符
http://example.com?name=åge
该网址将获得自动转换成ASCII等效,所以在URL它将读取:
http://example.com?name=%E5ge
当我访问并打印出值它工作得很好,并显示该参数为: åge
但是,我使用它来选择我的数据库中的东西,这将无法正常工作。如果我在URL中使用ASCII版本,它将不会选择任何形式的数据库,只是给我一个空的结果。如果我强迫的URL不使用ASCII,所以它是:http://example.com?name=åge
从数据库中选择时,它会正常工作,但是当我显示的参数也显示了这一点: Ã¥
我不知道怎么去解决这个。任何帮助表示赞赏。
'%E5'不是ASCII码,而是ISO-8859-1。 (ASCII仅为7位)。您应该使用UTF-8,而不是在URL编码请求中(→→%C3%A5')和输出处理中('Ã¥'是\ xC3 \ xA5的外观当解释为latin1)。你的数据库正在做正确的事情。 – mirabilos
哦好吧,但我该怎么做呢? 如果我正在制作这样的链接: 然后链接将使用您所谈论的ISO编码,将å转换为%E5 。那么我怎么强制它使用UTF-8编码呢? –
浏览器通常应该使用UTF-8编码本身(MSIE5.0有一个配置选项,虽然它通常关闭,但不知道更新的版本)如果你首先将你的页面作为UTF-8发布,浏览器可能会得到一些线索,我还没有看到浏览器不会像UTF-8一样编码为 – mirabilos