問題タブ [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.
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
これはなぜですか。また、次のようなリクエストヘッダーを尊重するように指示するにはどうすればよいですか。
QueryString
UTF-8文字セットを使用してURLをデコードします。
補遺:答えが指摘しているように、問題はエンコードほどデコードにありません。JavaScriptでの使用escape()
は、UTF-8に従ってエスケープしませんが、使用はエスケープencodeURIComponent()
します。
php - PHPのJavaScriptのencodeURIcomponentに相当するものは何ですか?
encodeURIcomponent
PHPでのJavaScriptの関数に相当するものは何ですか?
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は何のためにあるのだろうか?
javascript - JS encodeURIComponent の結果が FORM で作成されたものと異なる
フォームに入力された値は、ブラウザによって適切にエンコードされていると思いました。
しかし、この単純なテスト ファイル "test_get_vs_encodeuri.html" は、それが正しくないことを示しています。
送信ボタンを押すと:
encodeURICompenent は、入力値を「Euro-%E2%82%AC」にエンコードします
一方、ブラウザーは GET クエリに単純な「Euro-%80」のみを書き込みます。
誰か説明してくれませんか?
Javascript を使用して、ブラウザの FORM (windows-1252) と同じ方法ですべてをエンコードするにはどうすればよいですか? (エスケープ関数が機能しない、encodeURIComponent も機能しない)?
それとも、encodeURIComponent が不要な変換を行っていますか?
jquery - Jquery.serialize();による日本語の処理
フーボーイ。私が推測する奇妙なもの!
フォームから入力を取得し、xmlを作成するためのphpスクリプトに送信する前に、西洋文字、句読点、または数字がないことを確認したいと思います...
フォーム名から="a"
--->テキストは.ajaxを使用してphpスクリプトに送られます
ただし、日本語は正規表現に到達する前にASCIIに変換されています。
例えば。あああは%E3%81%82%E3%81%82%E3%81%82になります
助言がありますか?
javascript - href の jQuery エンコード URI が機能しない
文字列のエンコードに問題があるため、変数をリンクに配置できます。これは本当に簡単なことだと思いますが、何も上げるのに苦労しました。
これはうまくいきません。
それでも戻ります:
それ以外の:
また試しました:
javascript - JavaScript で URL を適切にエンコードするにはどうすればよいですか?
現在のページの URL または選択したリンクをパラメーターとして受け取り、それをサーバーに送信するブラウザー プラグインに取り組んでいます。URL に基本的なラテン アルファベットの文字が含まれている場合 ( http://en.wikipedia.org/wiki/Vehicleなど)、プラグインは正常に動作します。ただし、URL にhttp://ru.wikipedia.org/wiki/Коляскаなどの別のアルファベットの文字が含まれている場合、プラグインは機能しません。このencodeURIComponent
方法を使用しても問題は解決しないようです。何か案が?
ありがとう、
オリビエ。
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
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 ではエラーはまったく表示されません。
どうすればこれを修正できますか?