問題タブ [idn]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - IDNをASCIIに変換する方法は?
国際化ドメイン名をASCII形式に変換する最良の方法は何ですか?
ある種の(無料の).netコードを使用して変換Bücher.ch
したいと思います。xn--bcher-kva.ch
php - IDNURLを適切に照合する
フリーテキスト内のURLと適切に一致する正規表現を作成するためのサポートが必要です。
- 図式
- 次のいずれか:ftp、http、https(ftpsはプロトコルですか?)
- オプションのユーザー(およびオプションのパス)
- ホスト(IDNをサポート)
- wwwおよびサブドメインのサポート(IDNのサポートあり)
- TLDの基本的なフィルタリング(
[a-zA-Z]{2,6}
私は十分だと思います)
- オプションのポート番号
- パス(オプション、Unicode文字をサポート)
- クエリ(オプション、Unicode文字をサポート)
- フラグメント(オプション、Unicode文字をサポート)
これが私がサブドメインについて知ることができたものです:
「サブドメイン」は、絶対的な依存関係ではなく、相対的な依存関係を表します。たとえば、wikipedia.orgはorgドメインのサブドメインを構成し、en.wikipedia.orgはドメインwikipedia.orgのサブドメインを構成します。理論的には、この細分化は127レベルまで下がることができ、ドメイン名全体が全長255文字を超えない限り、各DNSラベルには最大63文字を含めることができます。
ドメイン名自体に関しては、信頼できるソースは見つかりませんでしたが、非IDNの正規表現(IDN互換バージョンの記述方法がわかりません)は次のようなものだと思います。
誰かがこの正規表現で私を助けたり、良い方向を教えてくれますか?
silverlight - 異なるドメインでSilverlightビデオプレーヤーを表示するというばかげた問題
異なる ドメインからの2つのSilverlightムービーの表示に問題があります。
これらは両方ともIISのバインディングに含まれており、両方とも私のプライベートコンピューター/サーバーにリダイレクトされ、両方ともブラウザーにSilverlightプラグインを読み込んでいます。
最初のドメインには、映画とSilverlightのコンテンツが表示されます。2つ目はそうではありません。
最初のドメインには、IDNによって引き起こされるURLの書き換えが含まれていません。2つ目はそうです。ただし、これは明らかに問題にはなりません。これを修正するための助けは非常にありがたいです。
この問題に対する私の見解は、Expression Encoderのビデオテンプレートにデフォルトでバグがあるか、Silverlightにバグがあるということです...どう思いますか?
編集:IDNドメインでSilverlightバーフを実行するだけでなく、スタックオーバーフローも実行します。じゃ、はい!ASCIIに相当するものはxn--framtidenshlsa-gib.seです。
また、SilverlightがBarfを実行する理由を見つけたかもしれません。
備考
これらのオプションのいずれかを組み合わせて、オプションをパラメーターとしてGenericUriParser .. ::。GenericUriParser(GenericUriParserOptions)コンストラクターに渡すことにより、汎用URIパーサーを構成できます。
Silverlightの既存のSystem..::。Uriクラスは、現在、ドメイン名に適用されるInternational Resource Identifier(IRI)またはInternationalized Domain Name(IDN)の解析をサポートしていません。
Silverlightアプリケーションは、Uriクラスから新しいクラスを派生させることはできません。
IRIサポートの詳細については、System..::。Uriクラスの「備考」セクションを参照してください。
javascript - 人間が読める形式のIRIを有効なURIとの間でエンコード/デコードするIDN対応ツール
ユーザーがリソースのアドレスを入力し、それを次のように変換する必要があると仮定します。
HTML4仕様はRFC3986を参照しており、ホスト部分ではASCII英数字とダッシュのみを許可し、他の部分ではすべての非ASCII文字をパーセントエンコードする必要があります。これは、すべてのブラウザーでリンクが正しく機能するようにするために、href属性に入れたいものです。IDNはPunycodeでエンコードする必要があります。
HTML5ドラフトはRFC3987を参照しており、ホスト部分でパーセントエンコードされたUnicode文字と、ホスト部分と他の部分の両方でエンコードせずにユニコードの大規模なサブセットを許可します。ユーザーは、これらのフォームのいずれかに住所を入力できます。人間が読める形式を提供するには、印刷可能なすべての文字をデコードする必要があります。通常、ターゲットサイトが他の文字エンコードを使用している場合、アドレスの一部が有効なUTF-8シーケンスに対応しない可能性があることに注意してください。
私が入手したいものの例:
これらのタスクを解決するためのツールはありますか?特にPythonとJavaScriptのライブラリに興味があります。
更新:PythonとJavaScriptでパーセントとPunycode(適切な正規化なしで実行できますが、私はそれを使用できます)のエンコード/デコードを行う方法があることを私は知っています。タスク全体にはさらに多くの作業が必要であり、いくつかの落とし穴があります(コンテキストに応じて、一部の文字は常にエンコードされるか、エンコードされないようにする必要があります)。それは非常に一般的であり、最近のブラウザはすでにそのような変換を行っているので、問題全体にライブラリを使用する準備ができているかどうか疑問に思います( http://%D1%81%D0%B0%D0%B9%D1%82.%D1%80%D1%84/
Google Chromeで入力してみてください。これはに置き換えられますが、HTTPリクエストでhttp://сайт.рф/
使用します)。Host: xn--80aswg.xn--p1ai
Update2:Vinay Sajipは、Werkzeugにはほとんどの場合を正しく処理するiri_to_uri関数とuri_to_iri関数があることを指摘しました。これまでに失敗したケースは2つだけです。パーセントエンコードされたホスト(修正が非常に簡単)と無効なutf-8シーケンス(うまくやるのは少し難しいですが、問題にはならないはずです)。
私はまだJavaScriptのライブラリを探しています。書くのは難しいことではありませんが、車輪の再発明は避けたいと思います。
unicode - IDN ホスト ラベルで使用できる Unicode 文字はどれですか?
私は現在、「適切な」URI バリデーターに取り組んでおり、現在はすべてホスト名の検証にかかっています。残りはそれほどトリッキーではありません。
私は IDN ホスト名ラベル (つまり、Unicode を含む; punycode でエンコードされた可能性のある文字列は、この時点でデコードされています) に行き詰まっています。
私の最初のアイデアは、基本的に、IDN をサポートしない TLD 用の 1 つの正規表現と、サポートする TLD 用の 1 つの正規表現でした。これはおそらく、 Mozilla の IDN 対応 TLD のリストに基づいている可能性があります。それぞれ、
^[a-zA-Z0-9\-]+$
および^[a-zA-Z0-9\-\p{L}]+$
. ただし、すべての IDN レジストラが許可する文字を決定できるため、これは理想的な状況ではありません。
私が探しているのは、さまざまな TLD で許可されている Unicode 文字の適切で一貫性のある最新のデータ テーブルです。ロシアと中国の登録サイトですべてのデータを自分で見つけなければならないように見え始めています (これは非常に困難です)。
したがって、このデータをすべて自分で収集しようとする前に、そのようなリストが既に存在するかどうか疑問に思いました. または、より良いアプローチ、ベスト/一般的なプラクティスなどはありますか? (バリデーションはできるだけ厳しくしたい。)
php - PHPでIDNからURLをコーディングおよびデコードするにはどうすればよいですか?
ドメインの確認、登録などを行うサイトを作っているので、IDN に準拠させなければなりません。今、私はこのようなものを持っています:
そして、これを取得しています:
testing123ásd123 xn--testing123sd123-wjb testing123ĂĄsd123
ご覧のとおり、デコードされた文字列は元の文字列と同じではありません
私は使用してみました:
そして、私はまったく同じになりました(エンコードされた文字列がわずかに異なることを除いて)
何か案は?
編集:問題は解決しました!文字列をちっぽけなコードに変換する際のこの問題 (PHP では、phlyLabs の punycode 文字列コンバーターを使用) では 、元の文字列は iso-8859-2 で、UTF-8 でデコードされました。 2 繰り返しますが、Google がそれを手伝ってくれます。モッドはありますか?質問はどうすればいいですか?閉じる、消す?このままで?
javascript - IDN正規表現を使用して日本語の文字を照合するにはどうすればよいですか?
この投稿リンクテキストに基づく
私はjavascriptの正規表現を思いついた
これは次のようなURLと一致します
http://google.com
http://www.google.com
google.com
失敗しますがgoogle
、日本語の文字を使う功功.jp
と失敗します。
www.功功.jp
http://www.功功.jp
http://功功.jp
これらは一致します。功功.jp
それも一致するように何を変更すればよいですか。
ruby - wwwがない場合、rubytoUnicodefunはidnサイトを返しません。URLで
Railsアプリで、idn urlをpunycodeに変換し、idnに戻します。
しかし、私がこのようなURLを持っている場合http://Japanese.jp(wwwなし)
しかし、IDNに変換しようとすると失敗します
wwwを追加するだけで、toUnicodeは正しく変換されます。http://www.Japanese.jpのような上記のidnURLに
私は何かが足りないのですか?
php - PHP cURL アクセント付き URL でコンテンツを取得する
アクセント付き URL で cURL を使用すると、CURLOPT_RETURNTRANSFER = true の場合、コンテンツを取得できません。
例:
$html が空です。解決策はありますか?
ruby - ruby idna.toUnicode の楽しみは、tld 部分の punycode を変換していないことです。
Idna.toAscii fun を使用して、サイト名 www.中国.中国 (tld には Unicode 文字も含まれています) を変換します。
結果は www.xn--fiqs8s.xn--fiqs8s でした
Idna.toUnicode fun を使用して、上記の Punycode を Unicode 文字に変換しました。
しかし、私は www.中国.xn--fiqs8s しか持っていません toUnicode の楽しみは、tld の部分を無視することです。
これを乗り越える方法はありますか?