問題タブ [iri]
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.
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のライブラリを探しています。書くのは難しいことではありませんが、車輪の再発明は避けたいと思います。
c# - RSS フィードの検証: URL が期待される場所に IRI が見つかりました - IRI リンクを有効な URL に変換するには?
非 ASCII 文字の URL (IRI) を含む RSS フィードを作成しました。そのため、 Feed validatorを使用して検証しません。
その検証はどれほど重要ですか?私の知る限り、これは多かれ少なかれ従来の RSS リーダーの検証ですか?
とにかく、C# で IRI を URL に変換する方法を知りたいですか?
に
url - IRI から URI/URI から IRI への変換アルゴリズム
IRI を URI に、URI を IRI に変換するためのオープン ソース アルゴリズムはありますか?
AC# の実装が望ましいですが、必須ではありません。
rdf - Xpointer は無効な IRI ですか?
RDF を処理するために Jena フレームワークを使用するツール ( Elda ) を試しています。
このエラーが発生しました:
エラー [qtp1415899750-24] (RouterRestlet.java:332) - 例外: 行 7、列 72: com.hp.hpl.jena.iri.impl.IRIImplException: コード: 0/ILLEGAL_CHARACTER in FRAGMENT: 文字が文法規則に違反していますURI/IRI 用。
次の URL は有効な IRI ではありません。
http://burckhardt.netseven.it/show_annotable_transcription?id=12#xpointer(start-point(string-range(//DIV[@about='http://burckhardt.netseven.it/show_annotable_transcription?id=12') ]/DIV[1]/BLOCKQUOTE[1]/P[1]/text()[1],'',13))/range-to(string-range(//DIV[@about='http:/ /burckhardt.netseven.it/show_annotable_transcription?id=12']/DIV[1]/BLOCKQUOTE[1]/P[1]/text()[1],'',27)))
私はそれが醜いことを知っていますが、私が理解している限り、それは XPointer 仕様に準拠しています...そして、私はそれを他の環境 (例えば Sesame triplestore) でうまく使用しています。
誰かがそれで何が間違っているのですか?
ありがとうございました
キリスト教徒
.net - Uri クラスと IRI
IRI を解析するときに、.net の Uri クラスに苦労しています。
次の IRI を検討してください。
これから Uri を作成すると (iri 解析設定に関係なく)、次のようになります。
uri.AbsolutUri が返す実際の値は次のとおりです。
Uri クラスは、RFC3987 仕様ではなく RFC3986 で説明されているように機能するようです (ただし、msdnは別のことを言っています)。後者に従ってエスケープされた正しい文字列表現を返すには、Uri#AbsoluteUri が必要です。
どうしてこうなの?この動作を変更する方法はありますか?
uri - JenaSDBIRI検証
Jena SDBに挿入したい奇妙なIRIがいくつかありますが、いくつかのエラーメッセージが表示されます。
- http://example.org/text/1234#offset_2311_2317_10-12%
エラーメッセージは次のとおりです。
コード:30 / ILLEGAL_PERCENT_ENCODING in FRAGMENT:ホストコンポーネントのパーセントは、後続の2桁の16進数なしで発生しました。 - http://example.org/text/5678#offset_365_370_NDZ#2
エラーメッセージは次のとおりです。
コード:0 / ILLEGAL_CHARACTER in FRAGMENT:文字がURI/IRIの文法規則に違反しています。 - http://example.org/text/7890#offset_8872_8878__ "
エラーメッセージは次のとおりです。
コード:4 / UNWISE_CHARACTER in FRAGMENT:文字はURI / IRIの文法規則に一致しません。これらの文字はRDFURI参照、XMLシステムで許可されています識別子、およびXMLスキーマanyURI。
文字列10-12%、NDZ#2、および_ "Frenはプレーンテキストドキュメントから抽出され、IRIの後ろに直接添付する必要があります。したがって、私の質問は、有効なIRIですか?そうでない場合は、必要なことを考慮してIRIの後ろにプレーンテキストを添付するには、どうすればそれらを有効なIRIに変換できますか?
javascript - JavaScriptでRFC3987(IRI検証)の実装が行われていますか?
文字列が有効なIRIであるかどうかを確認するために使用できるように、JavaScriptで実行されるRFC3987(Internationalized Resource Identifiers)の実装はありますか?NodeJSで実行されるスクリプトに必要です。
HTMLがIRIリンクをサポートしていないことは知っていますが、HTMLドキュメントのチェックには使用していません。
rdf - OWL APIのRDFXMLParserが2つのハッシュでIRIを解決できないのはなぜですか?
OWL API でオントロジーをロードしようとしています。
リソースの IRI の 1 つは ですhttp://example.com/#1#2'
。
次の例外が発生します。
その IRI を に変更するとhttp://example.com/#1'
、すべて問題ありません。
OWL APIのRDFXMLParserが2つのハッシュでIRIを解決できないのはなぜですか?
debugging - IRI 検証、エンコードされた <> シンボルで予期しない失敗
プロジェクトで abdera を使用していますが、既にエンコードされた < および > 記号を含むコンテンツから IRI アドレスを解析中に失敗します:> <
例外は: "org.apache.abdera.i18n.text.InvalidCharacterException: Invalid Character 0x3c(<) "
> <
これらの記号 ( ) が IRI 形式で許可されていることを知っているため、混乱しています。
教えてください
編集:私はクラス org.apache.abdera.model.Link の getHref() メソッドを使用しており、リンクは次のようなものです:http://blabla.com?xxx>yyy<zzz