11

現在、I18Nプロジェクトに取り組んでいます。URLにASCII以外の文字を含めるとどのような問題が発生するのでしょうか。それがお勧めできない場合、この問題に対処するための代替手段は何ですか?

編集(Maxymの回答に応じて):サイトは特定の国にローカルになる予定であり、世界中の人々がこのサイトにアクセスすることを心配する必要はありません。使いやすさの観点から、それは本当に迷惑だと理解しています。これに関連する他の技術的な問題は何ですか?

4

4 に答える 4

7

IDNAを使用して、ASCII 以外/ラテン語以外のドメイン名を使用することができます。%20さらに、 URL では常にパーセント エンコーディング (スペースなど) を使用できます。RFC 3986では、パーセントと組み合わせた UTF-8 エンコーディングを推奨しています。

データは、最初に UTF-8 文字エンコーディングに従ってオクテットとしてエンコードする必要があります。次に、予約されていないセットの文字に対応しないオクテットのみをパーセントでエンコードする必要があります。(...) たとえば、文字 A は "A" と表され、文字 LATIN CAPITAL LETTER A WITH GRAVE は "%C3%80" と表され、文字 KATAKANA LETTER A は "% E3%82%A2".

最新のクライアント (Web ブラウザー) は、パーセント エンコーディングと Unicode の間で相互に変換できるため、URL は ASCII として転送されますが、ユーザーにはきれいに見えます。

Web マスターやコンテンツ エディターからの URL 入力を簡素化するために、このエンコーディングも理解できる Web フレームワーク/CMS を使用していることを確認してください。

于 2011-01-13T17:47:06.507 に答える
4

私はノーと言うでしょう。理由は簡単です -> 世界的な公開に依存している場合、人々があなたの URL を入力するのは大きな問題になるからです。私は「キリル文字」の世界に住んでいます。キリル文字の URL を作成することは可能ですが、言語を変更してラテン語を入力するのに慣れるのがかなり面倒なので、誰も成功しません...

更新:
代替案については言えませんが、一部の言語では非公式または正式な文字の代替がある場合があります。たとえば、ドイツ語では Ö と書くことができますが、URL では代わりに OE と表示されます。また、英語の単語、または似たような音の単語を検討することもできます (そうすれば、あなたの国の人々はその文章を覚えることができ、他の「国」は害を及ぼすことはありません)。

于 2011-01-13T17:35:01.350 に答える
2

ターゲットユーザーによって異なります...たとえば、Nürnberg.deは、ドイツ語のネイティブユーザーが簡単にアクセスできるようにするために、nuernberg.deも調べます(ドイツ語のキーボードがデフォルトであり、4つの追加のキーシンボル(öäüß)がすべて利用可能であるため) I18N の目標の 1 つは、エンド ユーザーに母国語の感覚を提供することであることを忘れないでください。Mac および Linux ユーザーは、I18N 入力を処理するために、Mac で Alt+u をクリックすると文字にウムラウトが誘発されるなど、さらに積極的な方法があります。

URL に ASCII 以外の文字を含めることの複雑さは何だろうと思っていました。

しかし、あなたの質問の仕方は、あなたの質問はURLではなくURIに関するものであるようです...そして、URI内の非ASCII文字とURNを融合しようとしています。サーバーでURNを解析する場所と方法を知っていれば、複雑なことはありません(たとえば、Djangoベースのサーバーの場合、URNは url.py 内の正規表現を使用して解析および処理できます)。 web2.0 (Ajax javascript ベース) の進化では、Javascript 仕様が utf-8 エンコーディングを要求するため、すべてが主に utf-8 で実行されることに注意してください。したがって、utf-8 は一種の標準に進化しました。utf-8 エンコーディング仕様に固執すれば、URI の解析とその回避で複雑な問題に直面することはほとんどありません。

例えば。URI http://de.wikipedia.org/wiki /Fürth またはhttp://hi.wikipedia.org/wiki /जर्मनी を確認してください。アドレスバーに記述したエンコーディングに関係なく、ブラウザはそれを UTF-8 に変換します。 、サーバーに送信します。

注 : UTF-8 のほかに、パーセンテージ エンコーディングを使用してエンコードされたシンボルがいくつかあります。詳細については、こちらを参照してください。

http://en.wikipedia.org/wiki/Percent-encoding

于 2011-01-13T17:53:26.333 に答える
1

URL に非 ASCII 文字を使用できますが、特殊な文字は次のようにエンコードする必要があるため、見苦しくなります: http://www.w3schools.com/tags/ref_urlencode.asp

于 2011-01-13T17:46:53.640 に答える