問題タブ [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.
parsing - WebサーバーのリクエストURIで予約されたエスケープ文字をデコードするにはどうすればよいですか?
WebサーバーがURI比較を行うために、エスケープされた予約されていない文字(alphanumなど)をデコードする必要があることは明らかです。たとえば、http://www.example.com/~user/index.htm
はと同じですhttp://www.example.com/%7Euser/index.htm
。
私の質問は、エスケープされた予約文字をどうするかということです。
例は、、%2F
または/
です。リクエストURIにが含まれている場合、Webサーバーのパーサーはそれを?%2F
に置き換える必要があります。/
上記の例では、それは?http://www.example.com/~user%2Findex.htm
と同じになることを意味します。http://www.example.com/~user/index.htm
Apacheサーバー(2.2.17 Unix)で試してみましたが、「404NotFound」エラーが発生するようです。
つまり%2F
、他のエスケープされた予約文字は(少なくともURI比較の前に)そのままにしておく必要がありますか?
背景情報:
RFC 2616(HTTP 1.1)には、エスケープデコードの問題に言及している場所が2つあります。
Request-URIは、セクション3.2.1で指定された形式で送信されます。Request-URIが「%HEXHEX」エンコーディング[42]を使用してエンコードされている場合、オリジンサーバーはリクエストを適切に解釈するためにRequest-URIをデコードする必要があります。サーバーは、無効なRequest-URIに適切なステータスコードで応答する必要があります。
と
「予約済み」および「安全でない」セット(RFC 2396 [42]を参照)以外の文字は、「"%」HEXHEXエンコードと同等です。
(http://trac.tools.ietf.org/wg/httpbis/trac/ticket/2によると、 「安全でない」は間違いであり、仕様から削除されます。したがって、ここでは「予約済み」のみを確認しています。)
参考までに、RFC 2396でのそのような文字の定義:
予約済み=";" | "/" | 「?」| ":" | "@" | "&" | "=" | "+" | "$" | "、"
unreserved = alphanum | マーク
マーク="-"| "_" | 「。」| 「!」| "〜" | "*" | "'" |"( "|") "
javascript - HTMLEncodingからURLEncodingに直接変換する
現在、一連のASPクラシックページを新しいMVCベースのイントラネットに転送しています。重要な機能の変更は行っていませんが、UIの改善とベストプラクティスをいくつか行っています。ただし、これは特殊文字に関する問題を引き起こします。
1つのセクションは、臨床テストのドロップダウンリストで機能し、テスト名のクエリ文字列を介してGETSします。ただし、ASP.netのHTMLEncodingは過度に攻撃的です(UTF-8であるにもかかわらず、広範囲の文字をエンコードしています)。これにより、HTMLエンコードされた文字がURLエンコードされ、全体が「潜在的に危険な要求」エラーをスローします。
テスト名をHTMLEncodeできませんでした。これを変更するためのアクセス権を持つユーザーは非常に限られていますが、それは私が始めたいパスではありません。
これにより、文字列のエンコードを解除してから再エンコードする必要がありますが、JavaScriptにはネイティブのHTMLDecode関数がありません。文字の長いリストを取得して文字列を置換するのではなく、HTMLエンコードされた文字からパーセントエンコードされた文字に直接移行する簡単な方法があるかどうか、つまり&xxx;の行に沿って何かをデコードして再エンコードするのではないかと思いました。=%(xxx / 2)
perl - LWP::UserAgent を使用してフォームデータの ISO-8859-1 エンコーディングを強制する方法は?
LWP::UserAgent は、次のように ISO-8859-1 として明示的にエンコードしている場合でも、常にフォーム データを UTF-8 としてエンコードしているようです。
依頼内容はtext=%C3%A8
. 代わりにどのようにè
エンコードできますか?%E8
objective-c - NSURL のパーセント エンコーディングへのアラビア語 UTF エンコーディング
Http Requests を介してモバイルからインターネットにリクエストを送信するいくつかのモバイル アプリに取り組んでいます。
問題は、このリクエストでアラビア文字をパラメーターとして送信することです。そのため、それらを変換する必要があります。
UTF-8 からパーセントへのエンコード
ここにJavaベースのソリューションがあります:
[投稿の下部に英語の詳細が表示されます:]
しかし、Objective-C に関する私の問題は、どうすれば解決できますか?!
url - URLパーセントエンコーディングでは大文字と小文字が区別されますか?
URLでの%3B
扱いは異なりますか?%3b
c# - c#によるすべてのutf-8文字のパーセントエンコーディング
「投稿」リクエストに入れるための文字列を用意したいと思います。残念ながら、URL をエンコードするために私が見つけたすべての方法は、ほんの一握りの文字にのみパーセント エンコードを適用しているようです。さまざまな方法。HttpUtility.UrlEncode
、() や § などの一部の文字はそのままにしておきます。
url - RFC 3986(URI構文)で%(パーセント)が予約文字と見なされないのはなぜですか?
明らかに%をエンコードする必要があります。標準に関するウィキペディアの記事には次のように書かれています。
パーセント( "%")文字は、パーセントエンコードされたオクテットのインジケーターとして機能するため、そのオクテットをURI内のデータとして使用するには、「%25」としてパーセントエンコードする必要があります。
予約文字としても記載されていないのはなぜですか?明らかに、URIのコンテキストで特別な何かを示すために予約されています...
urlencode - URL エンコーディングのパーセンテージ スペース
URL エンコーディングでの Twitter 共有リンクの問題。この文を共有する必要があります。
私はあなたに40%の割引をします
これをURLから渡そうとしています
2 つの割合 %% が一緒になって問題を作成します
。解決策は何ですか?
java - パーセントでエンコードされた URL から 16 進値を抽出する
たとえば、次のパーセントでエンコードされた文字を含む URL があるとしましょう: %80
これは明らかに ASCII 文字ではありません。
この値を Java の対応する 16 進文字列に変換するにはどうすればよいでしょうか。運が悪かったので、次のことを試しました。結果は80になるはずです。
php - パーセント エンコーディングと sql LIKE クエリ
句get http request
を含むSQLクエリを送信するにはどうすればよいですか? LIKE %item%
パーセントエンコーディングについて読んだことがありますが、そのようなリクエストをどのように処理するかについてはまだわかりません。
% sign
処理されるpercent-encoding
ため、SQLクエリが壊れます。
ヘルプ!