この記事は機械翻訳のミラー記事です。元の記事にジャンプするにはこちらをクリックしてください。
建築家
建築家
リスト
放送
茶屋
インテリジェントAI会話
.NETキャリア&テクニカルカレッジ
ちっちゃいなクズブログ
この版
利用者
Architect_Programmer_Code農業ネットワーク
»
建築家
›
プログラミング
›
.Net/C#
›
ASP.NET におけるURLエンコードとデコード
眺める:
16009
|
答える:
2
[ASP.NET]
ASP.NET におけるURLエンコードとデコード
[リンクをコピー]
クズども
掲載地 2016/01/12 13:04:21
|
|
|
|
次の2つのURLを見てみましょう。同じパラメータを通していますか?
aaa.aspx?tag=.net%bc%bc%ca%f5
aaa.aspx?tag=.net%e6%8a%80%e6%9c%af
違うように見えますが、実際にはすべて「.net技術」としてUrlEncodeを使っています。ただし、1つはGB2312エンコーディング、もう1つはUtf-8エンコーディングです。
以下のコードは上記の符号化効果を得ることができます:
string tmp1 = System.Web.HttpUtility.UrlEncode(".net technology", System.Text.Encoding.GetEncoding("GB2312"));
string tmp2 = System.Web.HttpUtility.UrlEncode(".net technology", System.Text.Encoding.UTF8);
当社のウェブページは他のプログラムから呼び出されることがあります。
例えば、オペレーティングシステムのASPページは中国語簡体化で、ASP.net ページに中国語パラメータを渡す必要があります。
デフォルトでは、中国簡体字OSでは、ASPのServer.UrlEncodeメソッドが中国語をGB2312エンコーディングでエンコードします。
しかしデフォルトでは、ASP.net ページはUTF-8でエンコードされています。
この場合、Request.QueryString["Tag"]を使って値を受け入れると、中国語の情報は受け入れられず、ステップバイステップのデバッグで文字が乱れているのが見えます。
現時点では、Request.QueryString["Tag"]は文字が乱れていても受け入れられますが、URL自体は乱れていません。
解決策は、URL内のパラメータを自分で解析し、デフォルトのUTF-8エンコーディングではなくGB2312のエンコーディングに従ってパラメータの値を復号することです。
実際、Microsoftも対応する関数を提供しているため、私たち自身で正則表現を使ってURL文字列を解析する必要はありません。
デモコードは以下の通りです:
string q = Request.Url.Query;
System.Collections.Specialized.NameValueCollection nv =
System.Web.HttpUtility.ParseQueryString(q, System.Text.Encoding.GetEncoding("GB2312"));
Response.Write(nv["Tag"]);
Lutz Roederの.NET Reflectorを使ってSystem.Web.HttpUtility.ParseQueryStringメソッドの実装を見てみましょう。
繰り返し確認すると、URLパラメータ文字列解析を最終的に扱うコードは以下の通りです。
System.Web.HttpValueCollectionクラスの以下の関数はURLパラメータの解析を実装しています
ここでは、各キャラクターが分析を行うことがわかります。
ログインが見えます。
相手が私たちに渡すエンコーディング方法については、パラメータとして渡すのが最善であり、ユーザーのパラメータに従って復号できるからです。
先の:
家をスタジオに飾って作業するつもり?
次に:
AssemblyInfo.csファイルのパラメータの具体的な説明
関連記事
•
ブロックチェーンBase58、Base58Check、Bech32、Bech32mコーディングの詳細な説明
•
VS 2022パッケージ管理コンソール 中国語の乱雑なソリューション
•
.NETのすべてのバージョンでBase64のデコードエラーが存在します
•
Base64エンコード文字列構成(Base64に含まれる文字)
•
ASCIIコード、ISO8859-1、Unicode、GBK、UTF-8の違い
•
JavaScriptでのURLとパラメータのエンコード
•
URLセキュアBase64エンコーディング、デコード
•
JSはURLをエンコードおよび復号(区別の3つの方法)
•
JavaでUnicodeファイル(UTF-8など)を読み取る際に発生したBOMプレフィックスの問題
クズども
地主
|
掲載地 2024/12/04 17:15:50
|
.NET Core URL エンコーディングとデコード
ログインが見えます。
クズども
地主
|
掲載地 2024/12/04 17:35:32
|
異なる文字セットは以下のようにエンコードされています:
コード:
ログインが見えます。
閲覧したセクション
Windows/Linux
ウェブサイト構築
ごみ箱
レジャー灌漑
リソースの共有
安全な攻防
免責事項:
Code Farmer Networkが発行するすべてのソフトウェア、プログラミング資料、記事は学習および研究目的のみを目的としています。 上記の内容は商業的または違法な目的で使用されてはならず、そうでなければ利用者はすべての結果を負うことになります。 このサイトの情報はインターネットからのものであり、著作権紛争はこのサイトとは関係ありません。 ダウンロード後24時間以内に上記の内容を完全にパソコンから削除してください。 もしこのプログラムを気に入ったら、正規のソフトウェアを支持し、登録を購入し、より良い本物のサービスを受けてください。 もし侵害があれば、メールでご連絡ください。
Mail To:help@itsvse.com