0

2 バイト言語用のパーソナライズされた URL を作成する方法を見つけようとしています。

たとえば、Amazon Japan の次の URL では、クエリ文字列 (具体的にはパス) 内に日本語の文字が含まれています。

http://www.amazon.co.jp/風の谷のナウシカ-DVD-宮崎駿/dp/B00005R5J3/ref=sr_1_3?ie=UTF8&s=dvd&qid=1269891925&sr=8-3

私がやりたいことは次のとおりです。

http://www.mysite.com/風の谷のナウシカ

あるいは

http://www.mysite.com/index.php?name=風の谷のナウシカ

文字列を正しくデコードでき$GET[name]ます。

私はすべての可能性を試したと思いますがurldecodeutf8_decode応答が意味不明になります。

これはすべてフォーム$_POSTで正常に機能しますが、これらの URL をメールで送信できるようにする必要があります...

編集:これが私が使用しているコードです:

<p>Original: <?= $_GET[str]; ?>

<br>Decode: <?= urldecode($_GET[str]); ?>

<br>Decode querystring: <?= urldecode($_SERVER[QUERY_STRING]); ?>

<p>

<?
   while (list($var,$value) = each ($_SERVER)) {
      echo "$var => $value <br />";
   }
?>
4

2 に答える 2

2

とった!

ヘッダーが報告していることを確認する必要がありました:

header ('Content-type: text/html; charset=utf-8');

それをしたら、文字は正しく解釈されました。

これも見つけました。これは非常に優れたリソースです。

http://www.phpwact.org/php/i18n/utf-8

于 2010-03-29T20:34:35.903 に答える
0

GET 値を直接読み取ろうとしましたか? と同じ$_SERVER['QUERY_STRING']または同等ですか?urldecode()バージョン 5.0 以降は UTF-8 で動作するはずですが、この関数にはまだいくつかの問題があると確信しています。

php.net のこのページには、いくつかの有用なコメントがあり、その一部は特に日本の場合に当てはまります。

于 2010-03-29T20:07:21.040 に答える