0

$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");

助言がありますか?ありがとう。

4

2 に答える 2

0

次のように、urlencode($urlGoBack) を使用する必要があります。

header("Location: " . urlencode($urlGoBack));
于 2012-10-04T23:04:59.443 に答える
0

このようにURLをエンコードする必要があると思います

header("場所: " .urldecode($urlGoBack));

php.netを参照

于 2012-10-04T23:01:52.347 に答える