0

特殊文字/国際文字を含む URL をどのようにフォーマットすればよいですか?

現在、私はURLを「見栄えのする」ようにしようとしています。

www.myhost.com/this is a test, do you know how?

に変換されます:

www.myhost.com/this_is_a_test_do_you_know_how

一部の国際文字 (ü = ue、æ = ae、å = aa) は変換でき、一部の文字は削除できることを知っています。私は通常、URL を「見栄えの良い」ものにしようとしますが、それはばかげていますか?

しかし、西洋の ASCII 形式とは関係のない中国語、日本語、アラビア語の文字はどうすればよいでしょうか?

URL を 16 進コードで書き換えるという考えは本当に好きではないので、今のところ、URL に「変換できない」文字が多すぎる場合は、内部の一意の ID を使用するだけです。

4

4 に答える 4

1

どの言語を使用していますか?PHPには、必要なことのほとんどを実行するように見える関数filter_var()が含まれています。http://us.php.net/manual/en/function.filter-var.phpを参照してください。

一般に、任意の文字列入力から人間が読めるASCII文字列を作成するコストは、おそらく高すぎて価値がありません。ユーザーがあなたに漢字を与えたら、あなたは何をするつもりですか?辞書で調べて、結果を拼音で出力しますか?

最良の最も一般的な解決策は、入力を取得し、それをUTF-8としてフォーマットしてから、結果をURLエンコードすることです。これにより、ラテン語以外のテキストが読めなくなりますが、いずれにせよ、これらの言語に適した一般的な解決策はありません。使用している言語には、ほぼ確実に、これを簡単に実行できるライブラリ関数があります。

于 2008-10-16T16:40:29.210 に答える
0

しかし、Google はその URL を利用しているのではないでしょうか? 特定の記事のテキストの一部が URL にある場合、Google 検索エンジンはそれを使用しますか? しかし、ASCII 以外の文字を処理するクールな方法が本当にない場合、それらの言語は「google-internet?」で優先順位が低くなります。

于 2008-10-16T17:17:10.260 に答える
0

たとえばhttp://ja.wikipedia.org/を見てください。リンクにマウスオーバーすると、ステータスバーに日本語の文字で表示されます。リンクをたどるとロケーションバーがあまり日本語っぽく見えませんが、仕方ないかもしれません。確認していませんが、すべて utf8 16 進数でエンコードされていると思います。

于 2008-10-16T17:49:03.643 に答える
0

.NET を使用していない場合

Server.URLEncode( myURL );

ただし、スカンジナビア文字または任意の文字を使用する場合は、URL 書き換えコンポーネントでルールを設定するだけで済みます。これは、 DynamicWeb CMSソフトウェアが使用可能なすべての文字を使用し、スペースのみをアンダースコア ('_') に置き換えるためです。

この URL のように:

http://www.gynækologen.dk/Undersøgelser_og_behandlinger.aspx

ドメインの æ とページ名の ø を確認できます。

于 2008-10-16T18:47:55.897 に答える