https://blog.csdn.net/qq_38409944/article/details/80637980
ISO-8859-1はトランジットステーションとして使用できますが、gbkはhttps://blog.csdn.net/qq_38409944/article/details/80637345にはできません
http://www.ruanyifeng.com/blog/2010/02/url_encoding.html
リクエスト:
結論1:URLパスのエンコーディングはUTF-8エンコーディングを使用します。
結論2:クエリ文字列のエンコーディングは、オペレーティングシステムのデフォルトのエンコーディングを使用します。
上記の2つの結論は、ブラウザにURLを直接入力することで得られます。
上記はURLを直接入力した場合です
(つまり、この前にサーバーは応答を返しませんでした(1、<meta http-equiv = "Content-Type" content = "text / html; charset = xxxx">
2、response.setContent())
しかし、より一般的な状況は、開かれたWebページで(今回はサーバーが応答し、content-typeを1、htmlで設定、2をresponse.setContentで設定)、直接GetまたはPostメソッドはHTTPリクエストを作成します。
--------------------------------------------
開いているウェブページ
台湾の ZTE大学のLu Ruilin先生の実験によると、このときのエンコード方式は、Webページのエンコード、つまりHTMLソースコードの文字セットによって決まります。
<meta http-equiv = "Content-Type" content = "text / html; charset = xxxx">
上記の行の最後の文字セットがUTF-8の場合、URLはUTF-8でエンコードされ、GB2312の場合、URLはGB2312でエンコードされます。
結論3は、GETメソッドとPOSTメソッドのエンコーディングがWebページのエンコーディングを使用することです。
--------------------------------------------
Ajax呼び出しでは、IEは常にGB2312エンコーディング(オペレーティングシステムのデフォルトエンコーディング)を使用しますが、Firefoxは常にutf-8エンコーディングを使用します。これが私たちの結論です4。
--------------------------------------------
あなたが以前に理解したと仮定すると、あなたは現時点で頭痛を感じるはずです。わかりにくいので。オペレーティングシステム、ブラウザ、Webページの文字セットが異なると、エンコード結果もまったく異なります。プログラマがすべての結果を考慮に入れようとすると、恐ろしすぎるでしょうか。クライアントが1つのエンコード方式のみを使用してサーバーにリクエストを送信するようにする方法はありますか?
答えは「はい」です。最初にJavaScriptを使用してURLをエンコードし、次にサーバーに送信します。ブラウザーに介入する機会を与えないでください(エンコード後、URLの文字構成はルールを満たしているため、エンコードされません)。
JavaScriptの出力は常に一貫しているため、サーバーによって取得されたデータが統一された形式であることを保証します。
--------------------------------------------
encodeURI()は、JavaScriptでURLをエンコードするために使用される関数です。
これは、URL全体のエンコードに焦点を当てているため、一般的な記号に加えて、URLで特別な意味を持つ他の記号 "; / ?: @&= + $、#"はエンコードされません。
エンコード後、シンボルのUTF-8形式を出力し、各バイトの前に%を追加します。
==========================================
isoはトランジットを実行できるので、
String userName = new String(request.getParamter( "userName")。getBytes( "ISO8859-1")、 "utf-8")
GBKの場合は、代わりに、それはではなく、通過の数が奇数のため、輸送などの文字の偶数である https://blog.csdn.net/qq_38409944/article/details/80637345