在我的网站上,我发送一个带有UTF-8编码的Unicode数据的Location标头,如下所示:
<?php
header("Location: http://sr.wikipedia.org/sr/Србија");
exit;
?>
在Internet Explorer中,它将用户发送到:http://sr.wikipedia.org/sr/Србија
。
每隔一个浏览器,它就会将用户发送到http://sr.wikipedia.org/sr/Србија
,即
我在Ubuntu盒子上运行Apache 2,而Location头中的URL包含该站点的域名。该网站为其Content-Type发送text/html; charset=utf-8
。
我试过了:
AddDefaultCharset utf-8
指令添加到httpd.conf。rawurlencode()
编码位置网址。header("Content-Type: text/html; charset=utf-8");
标题前发送Location
。utf8_encode()
和utf8_decode()
但是I.E.仍然不会识别URL的编码。有什么建议吗?
答案 0 :(得分:2)
您忘记了标题字段名称,您需要使用rawurlencode
正确编码URI路径:
header("Location: http://sr.wikipedia.org/sr/".rawurlencode("Србија"));