php标题位置 - 法语字符

时间:2012-10-04 22:18:59

标签: php character-encoding header location special-characters

当$ urlGoBack变量包含像“é”这样的法语重音字符时,以下内容无法正常工作,即使我之前确保使用mb_convert_encoding()函数将其传递给标题,就像它应该的那样。

header("Location: " . $urlGoBack);

我被带到的网址“é”已更改为%E9,这就是我猜的URL。

HTML charset是iso-8859-1,而mb_detect_encoding($ urlGoBack)返回UTF-8。

另一方面,如果我尝试用

转换它
$urlGoBack = iconv('UTF-8', 'ISO-8859-1//TRANSLIT', $urlGoBack);

$urlGoBack = mb_convert_encoding($urlGoBack, "ISO-8859-1", "UTF-8"); 

然后mb_detect_encoding($urlGoBack)返回ASCII并且“é”消失,并且URL出错。 令人惊讶的是,当我尝试看似微不足道的

时,结果完全相同
$urlGoBack = mb_convert_encoding($urlGoBack , "UTF-8", "UTF-8");

有什么建议吗? 感谢。

2 个答案:

答案 0 :(得分:0)

我认为您需要像这样编码网址

header(“Location:”。urldecode($ urlGoBack));

Refer php.net

答案 1 :(得分:0)

您需要使用urlencode($ urlGoBack),如下所示:

header("Location: " . urlencode($urlGoBack));