問題タブ [percent-encoding]
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.
java - Javaでエンコードされている可能性のあるURI文字列を正規化する
Javaを使用して、フラグメント識別子を取り除き、さまざまなURIセットの単純な正規化(小文字のスキーム、ホストなど)を実行したいと思います。入力URIと出力URIは、一般的なHTTPの意味で同等である必要があります。
通常、これは簡単なはずです。http://blah.org/A_%28Secret%29.xml#blah
ただし、パーセントでエンコードされるのようなURIの場合(Secret)
、の動作java.util.URI
は生活を困難にします。
正規化メソッドはhttp://blah.org/A_%28Secret%29.xml
URIから戻る必要があり、解釈において同等ではhttp://blah.org/A_%28Secret%29.xml
ありhttp://blah.org/A_(Secret).xml
ません[§2.2; RFC3968 ]
したがって、次の2つの正規化方法があります。
ご覧のとおり、URIは解析され、フラグメント識別子なしで再構築されます。
ただし、メソッド1の場合、u.getPath()
エンコードされていないURIが返され、最終的なURIが変更されます。
メソッド2の場合u.getRawPath()
、元のパスを返しますが、コンストラクターに渡されるとURI
、Javaはダブルエンコーディングを追加することを決定します。
これは、中国のフィンガートラップのように感じます。
したがって、2つの主な質問:
- なぜ
java.util.URI
エンコーディングで遊ぶ必要性を感じるのですか? - 元のパーセントエンコーディングをいじることなく、この正規化メソッドをどのように実装できますか?
(私はむしろ、java.util.URI
自明ではないの解析/連結メソッドを実装する必要はありません。)
編集:ここにURI
javadocからのいくつかのさらなる情報があります。
単一引数のコンストラクターでは、引数に不正な文字を引用符で囲む必要があり、エスケープされたオクテットやその他の存在する文字を保持します。
複数引数のコンストラクターは、それらが表示されるコンポーネントで必要とされるように、不正な文字を引用します。パーセント文字('%')は、これらのコンストラクターによって常に引用符で囲まれます。その他の文字はすべて保持されます。
getRawUserInfo、getRawPath、getRawQuery、getRawFragment、getRawAuthority、およびgetRawSchemeSpecificPartメソッドは、エスケープされたオクテットを解釈せずに、対応するコンポーネントの値を生の形式で返します。これらのメソッドによって返される文字列には、エスケープされたオクテットと他の文字の両方が含まれている可能性があり、不正な文字は含まれていません。
getUserInfo、getPath、getQuery、getFragment、getAuthority、およびgetSchemeSpecificPartメソッドは、対応するコンポーネント内のエスケープされたオクテットをデコードします。これらのメソッドによって返される文字列には、他の文字と不正な文字の両方が含まれている可能性があり、エスケープされたオクテットは含まれません。
toStringメソッドは、必要なすべての引用符を含むURI文字列を返しますが、他の文字が含まれている場合があります。
toASCIIStringメソッドは、他の文字を含まない、完全に引用符で囲まれ、エンコードされたURI文字列を返します。
URI
そのため、クラスによって内部的にURLエンコードが混乱することなく、マルチ引数コンストラクターを使用することはできません。パー!
encoding - エスケープ率を向上させるNSStringカテゴリ
私は自分のプロジェクトの1つである@imのパーセントエスケープのより良い実装で小さなNSStringカテゴリを作成しました
この1つのプロジェクトでは、それは素晴らしい働きをし、私はそれを使うのが大好きです。しかし、それを別のプロジェクトに移植すると、そのコードはEXC_BAD_ACCESSを介して行われます。そのコードで何かを改善できますか?
url - ウィキペディアがURLフラグメントで変更されたパーセントエンコーディングを使用するのはなぜですか?
ウィキペディアがURLのパスセクションにパーセントエンコーディングを使用しているのに気づきましたが、%
文字を.
#fragmentに変換します。
たとえば、ロシア語の「ロシア」ページでは、セクション2(История)のURLは次のとおりです。
http://ru.wikipedia.org/wiki/%D0%A0%D0%BE%D1%81%D1%81%D0%B8%D1%8F#.D0.98.D1.81.D1.82.D0.BE.D1.80.D0.B8.D1.8F
それ以外の
http://ru.wikipedia.org/wiki/%D0%A0%D0%BE%D1%81%D1%81%D0%B8%D1%8F#%D0%98%D1%81%D1%82%D0%BE%D1%80%D0%B8%D1%8F
トークンは[A-Za-z]で始まる必要があるため、ID/名前に有効なHTML<5トークンもありません。HTML5は現在、スペース以外の任意の文字の少なくとも1つを使用できると述べています(したがって、エンコードする必要はまったくありません)が、ウィキペディアはHTML5ではありません。
では、なぜウィキペディアがこのスキームを使用したのでしょうか。
css - css をピクセルではなくパーセンテージに修正する
最近この WordPressサイトを作成し、ピクセルと余白を使用して 2 つの半透明のコンテンツ ボックスのレイアウトを作成しました。ただし、私よりも経験豊富な人は、これがまったく応答性が低く、クロスブラウザーフレンドリーではないことを認識していると確信しています! そのため、ピクセルではなくパーセンテージに切り替えるようにアドバイスされましたが、既存の CSS をどこから始めればよいかわかりません。
これを実現するには、5 列のレイアウトを作成する必要がありますか?
- 左側の空白スペースを作成するための最初の列の空白
- 2 番目の列に大きな青いコンテンツ ボックスを含める
- 2 つの列の間にスペースを作成するための 3 番目の列の空白
- 4 列目の小さい青色のコンテンツ ボックス
- 5 列目は右端の空白スペースを作成します
もっと簡単な方法はありますか?
ここに私の既存のスタイルシートへのリンクがあります
必要な情報を渡すのを忘れた場合は、お知らせください。
c# - OAUTHパラメータエンコーディング
OAUTHを実装すると、次の問題が発生します。署名ベースを作成するとき、エンコードされたパラメーターを再度エンコードする必要がありますか、それともパラメーターを正規化するときにエンコードされたパラメーターをエンコードから除外する必要がありますか?
jmeter - パラメータ値の%文字をデコードしようとすると、JMeterはIllegalArgumentExceptionで失敗します:URLDecoder:escape(%)パターンの不正な16進文字
Apache JMeter 2.7を使用すると、POSTリクエストのメッセージ本文(JSON)に、の形式のパスワードフィールドが含まれますasdf%xy3dsfsfsf
。JMeterは%xy
パーセントエンコードされた文字として解釈しようとし、この例外をスローします。
キャッチされない例外java.lang.IllegalArgumentException:URLDecoder:escape(%)パターンの不正な16進文字-入力文字列の場合:"xy"。詳細については、ログファイルを参照してください。
asdf\%xy3dsfsfsf
間違ったパスワードとしてWebサービスに到達するため、バックスラッシュを使用して文字をエスケープすることはできません。
この問題を解決する方法についてアドバイスしてください。
更新:この問題はビルド2578で解決されてい ます。https: //builds.apache.org/job/JMeter-trunk/2578/
php - %EBだけでなく%C3%ABにもパーセントエンコードされるのはなぜですか?
Webアプリケーションのフォームにëを入力すると、これはGoogle Chromeによって%C3%ABにパーセントエンコードされます。
PHPのurlencode('ë');を使用する場合 これは%EBにエンコードされます。
エンコーディングが異なるのはなぜですか?
PHP4を搭載したGoogleChromeと同じエンコーディングでエンコードするにはどうすればよいですか?
url - URL で「/」を「%2f」に変更しても機能しない
果樹園のサイトがあり、次の問題があります。
URL を使用する場合: http://asiahotelct.com/tours/ct---chau-%C4%91oc---ha-tien-3n2%C4%91、大丈夫です。しかし、URL を変更する/
と%2f
( http://asiahotelct.com/tours%2fct---chau-%C4%91oc---ha-tien-3n2%C4%91のように)、機能しなくなります。
/
に置き換えられないのはなぜ%2f
ですか?
html - XSLTを使用してHTMLパーセントエンコーディングをUnicodeに変換するにはどうすればよいですか?
これについてはオンラインでたくさんのエントリーと回答がありますが、それらはすべて私が必要としているものとは反対の方向に進んでいます。私のiTunesXMLから、XSLTスタイルシートを使用してUnicodeテキストに変換しようとしている、複数の言語での何千ものパーセントエンコードされたエントリがあります。すべての文字を追跡して置換を行う以外に、私が見逃している機能やプロセスはありますか?これは私が使用しているさまざまな例の小さなサンプルです。最初の行はXML文字列値であり、次の行は私が生成してテキストファイルに出力しようとしている基本的なテキストです。
/ iTunes / iTunes Music /Droitdevant/L'odyssée.mp3
ÀlaPêche
Запоминай
Κότσ̌αρι
この最後のものは、ハセック/ハーチェクの重ね打ちのために、一部の人にとっては正しく表示されない場合があります。
アドバイスやリードを事前に感謝します
django - Django で正しく % エンコードされていない URL をキャッチして、カスタムの「エラー 400」ページを返す
場合によっては、他の Web サイトが不適切にパーセント エンコードされた URL を使用して、Django を利用したサイトにリンクしていることがあります。Disqus.com と Twitter.com は同じ問題を抱えているため、私たちのユース ケース ( http://disqus.com/%C3A4 ) は特別なことではありません。この URL では、2 番目の % が欠落しています。有効な URL は次のようになります: http://disqus.com/%C3%A4
Django は空のエラー 400 (Bad request) ページを返します。ただし、エラーをキャッチしたいので、単なる有益でないページを返す代わりに、少なくともカスタム 404 ページをユーザーに表示したいと考えています。さらに良いことに、入力 URL の % 文字の欠落などをチェックして、その形式を検証したいと考えています。MiddleWare/process_request は現在の 400 エラーでも呼び出されるため、エラーをキャッチするためのフックがあります。
当サイトで問題を解決したいと思います。ベストプラクティスはありますか...? handler400 は素晴らしいでしょう - 自分で作成することは可能ですか?