Chrome はこれを変換します:aöüß
に%C3%A4%C3%B6%C3%BC%C3%9F
しかし、Firefox はそれをこの奇妙なものに変換します: a%F6%FC%DF
PHP で Firefox のものを元に戻す方法を見つけることができないようです。Urldecode と rawurldecode は残念ながら機能しません。誰かがそれに対処する方法を知っていますか? ありがとう。
2212 次
2 に答える
5
Tei がすでに推測しているように、Chrome は URL パラメータに UTF-8 (おそらく推奨) を使用し、Firefox は Latin-1 を使用しています。あなたがこの行動を制御できるとは思いません。また、使用されたエンコーディングを推測する必要があるため、これを処理するのは困難です。
これは、デコードがどのように機能するかです (アプリケーションで UTF-8 を使用していると仮定すると、ブラウザーに依存します)。
クロム:
$text = urldecode($_GET['text']);
ファイアフォックス:
$text = utf8_encode(urldecode($_GET['text']));
これは、ほとんどの場合に機能するソリューションです。
function urldecode_utf8($text) {
$decoded = urldecode($text);
if (!mb_check_encoding($decoded, 'UTF-8')) {
$decoded = utf8_encode($decoded);
}
return $decoded;
}
于 2012-04-02T11:28:25.563 に答える
1
ページで UTF-8 を使用するように強制します。おそらく、これらのコードは異なるエンコードされたウムラウトです。1 つは Latin1 のようなもので、もう 1 つはおそらく UTF-8 です。
utf-8 を強制する最良の方法は、html のメタ タグを使用することです。
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
于 2012-04-02T11:07:20.863 に答える