当 $urlGoBack 变量包含像“é”这样的法语重音字符时,即使我之前使用 mb_convert_encoding() 函数确保它按照应有的方式传递给标题,以下内容也无法正常工作。
header("Location: " . $urlGoBack);
我被带到的 URL 已将“é”更改为 %E9,我猜这是它的 URL 等效项。
HTML 字符集是 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");
有什么建议么?谢谢。