問題タブ [encodeuricomponent]

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.

0 投票する
2 に答える
4960 参照

asp.net - .Nethttpハンドラーでauumlautをエンコードする際の問題

リクエストをJavaWebサービスに渡すASP.Net(2.0)HTTPハンドラーに送信するJavaScriptリクエストがあります。このシステムでは、アクセント付きの特殊文字などの特殊文字は正しく渡されません。

例えば

  • 人間の入力:Düsseldorf
  • へのJavaScript非同期リクエストになりhttp://site/serviceproxy.ashx?q=D%FCsseldorfます。これは、私が知る限り、ISO-8859-1およびUTF-8で有効です。(UTF-8で%c3%bcでない限り)
  • HttpContext.Current.Request.QueryString.Get("q")D�sseldorfトラブルが始まるところから戻ります。
  • しかし、(a'?')をHttpUtility.UrlEncode(HttpContext.Current.Request.QueryString.Get("q"), Encoding.GetEncoding("ISO-8859-1"))返しますD%3fsseldorf
  • HttpUtility.UrlEncode(HttpContext.Current.Request.QueryString.Get("q"), Encoding.UTF8)戻りますD%ef%bfsseldorf

そのため、値が正しくデコードまたは再エンコードされて、Javaサービスに渡されません。

  • 通知HttpContext.Current.Request.Url.Query?q=D%FCsseldorf&output=json&from=1&to=10
  • HttpContext.Current.Request.QueryString.ToString()ですがq=D%ufffdsseldorf&output=json&from=1&to=10

HttpContextこれはなぜですか。また、次のようなリクエストヘッダーを尊重するように指示するにはどうすればよいですか。

QueryStringUTF-8文字セットを使用してURLをデコードします。

補遺:答えが指摘しているように、問題はエンコードほどデコードにありません。JavaScriptでの使用escape()は、UTF-8に従ってエスケープしませんが、使用はエスケープencodeURIComponent()します。

0 投票する
5 に答える
69205 参照

php - PHPのJavaScriptのencodeURIcomponentに相当するものは何ですか?

encodeURIcomponentPHPでのJavaScriptの関数に相当するものは何ですか?

0 投票する
4 に答える
1799 参照

php - ∞ は、MySQL テーブルに挿入されると ∞ に変換されます

0 投票する
2 に答える
2487 参照

php - encodeURIComponent は本当に便利ですか?

サーバーへの http-get リクエストを実行するときにまだ理解できないのは、JS 関数の encodeURIcomponent を使用して http-get の各コンポーネントをエンコードすることの利点です

サーバーが(PHPを使用して)見たいくつかのテストを実行すると、encodeURIcomponentを使用しない場合でも、http-getリクエストの値が適切に取得されます。 明らかに、クライアント レベルで特殊文字 & ? をエンコードする必要があります。= / : そうしないと、この "peace&love=virtue" のような http-get 値は、1 つの値ではなく、http-get リクエストの新しいキーと値のペアと見なされます。しかし、encodeURIcompenent は、たとえば 'è' などの他の多くの文字もエンコードするのはなぜですか。これは、utf8_decode 関数を使用して PHP サーバーでデコードする必要がある %C3%A8 に変換されます。

encodeURIcomponent を使用することで、http-get リクエストのすべての値が utf8 でエンコードされるため、PHP でそれらを取得するときに、毎回 $_GET 値ごとに utf8_decode 関数を呼び出さなければならず、これは非常に面倒です。

& だけをエンコードできないのはなぜですか? = / : 文字?

参照: JS encodeURIComponent の結果が FORM によって作成された結果と異なる 単純なブラウザの FORM GET が「€」などの文字を別の方法でエンコードするため、encodeURIComponent が正しくエンコードされていないことも示されています。それで、このencodeURIComponentは何のためにあるのだろうか?

0 投票する
2 に答える
6215 参照

javascript - JS encodeURIComponent の結果が FORM で作成されたものと異なる

フォームに入力された値は、ブラウザによって適切にエンコードされていると思いました。

しかし、この単純なテスト ファイル "test_get_vs_encodeuri.html" は、それが正しくないことを示しています。

送信ボタンを押すと:

encodeURICompenent は、入力値を「Euro-%E2%82%AC」にエンコードします

一方、ブラウザーは GET クエリに単純な「Euro-%80」のみを書き込みます。

  1. 誰か説明してくれませんか?

  2. Javascript を使用して、ブラウザの FORM (windows-1252) と同じ方法ですべてをエンコードするにはどうすればよいですか? (エスケープ関数が機能しない、encodeURIComponent も機能しない)?

それとも、encodeURIComponent が不要な変換を行っていますか?

0 投票する
1 に答える
1474 参照

jquery - Jquery.serialize();による日本語の処理

フーボーイ。私が推測する奇妙なもの!

フォームから入力を取得し、xmlを作成するためのphpスクリプトに送信する前に、西洋文字、句読点、または数字がないことを確認したいと思います...

フォーム名から="a"

--->テキストは.ajaxを使用してphpスクリプトに送られます

ただし、日本語は正規表現に到達する前にASCIIに変換されています。

例えば。あああは%E3%81%82%E3%81%82%E3%81%82になります

助言がありますか?

0 投票する
2 に答える
14117 参照

javascript - href の jQuery エンコード URI が機能しない

文字列のエンコードに問題があるため、変数をリンクに配置できます。これは本当に簡単なことだと思いますが、何も上げるのに苦労しました。

これはうまくいきません。

それでも戻ります:

それ以外の:

また試しました:

0 投票する
2 に答える
1345 参照

javascript - JavaScript で URL を適切にエンコードするにはどうすればよいですか?

現在のページの URL または選択したリンクをパラメーターとして受け取り、それをサーバーに送信するブラウザー プラグインに取り組んでいます。URL に基本的なラテン アルファベットの文字が含まれている場合 ( http://en.wikipedia.org/wiki/Vehicleなど)、プラグインは正常に動作します。ただし、URL にhttp://ru.wikipedia.org/wiki/Коляскаなどの別のアルファベットの文字が含まれている場合、プラグインは機能しません。このencodeURIComponent方法を使用しても問題は解決しないようです。何か案が?

ありがとう、

オリビエ。

0 投票する
2 に答える
660 参照

php - encodeURIComponent and urldecode removes slashes, why?

Hello I am using JSON.stringify for an array of arrays, and it returns this:

It is correct but i have to use encodeURIComponent (& present) to post this value with js. The problem is that when I get this data in POST from php with $boxes=json_decode($_POST['data']) it seems to remove slashes eg. pt=\"7.5\" -> pt="7.5" destroying the json object giving this result:

Does any one how to avoid this problem? thanks

0 投票する
5 に答える
9455 参照

javascript - Firefox は URL のエンコードされたパラメータを自動的にデコードしますが、IE では発生しません

私はFirefoxとIEの間でフラストレーションを感じています.Javascriptで作業する前に、ハッシュ内のパラメータを自動的にデコードしているため、ほとんどの場合Firefoxです。IE は URL を自動的にデコードしないため、読み取りエラーは発生しません。

私の問題はこれと似ていますが、ASP.NET ASP.NET MVC を使用していないことを除いて、JSON でエンコードされたパラメーターを AJAX から自動的にデコードします。

したがって、次のようなURLを取得するとexample.com/#question=!%40%23%24%25^%26*(

「!%40%23%24%25^%26*(」はencodeURIComponentを使用してエンコードされていましたが、IEではハッシュにアクセスすると「!%40%23%24%25^%26*(」のままになります。 "しかし、Firefox では、ハッシュにアクセスすると、自動的に "!@#$%^&*("

これに関する問題は、スクリプトでdecodeURIComponentを使用してエンコードされた値をデコードしていることです。これは、文字列が実際にエンコードされている場合は問題ありません。Firefox で既にデコードされているため、不正な形式の URI シーケンス エラーが表示されますが、IE ではエラーはまったく表示されません。

どうすればこれを修正できますか?