IIJIMASが勉強しようとしています。

これからこれから♪

目次

Blog 利用状況

ニュース

共著:




わんくま同盟 東京勉強会 #99 私の資料

個数を数えてみたい!

わんくま同盟 東京勉強会 #91 私の資料

きっと楽しいトポロジー

わんくま同盟 東京勉強会 #45 数学デー 私の資料(pptxとxlsx)

確率の不思議

わんくま同盟 東京勉強会 #37 私のLT資料

数の冪の和の式 を求めてみよう!

デブサミ09でわんくま同盟の紹介をしたスライド

わんくま同盟 東京勉強会 #26 LT祭りの私のスライド

わんくま同盟 東京勉強会 #23の私のスライド

わんくま同盟 東京勉強会 #18の私のスライド


自己紹介(仮)

IIJIMASと申します。
東京都多摩市在住です。多摩川のそばです。
猫好きです。
IIJIMASのSは何って言われます。 IIJIMASって
なんて読むかは自由です。
魚や網間企業とゲームとは無関係です。
数学とか宇宙とかの読み物とか好きです。
血液型:果汁100%A
メタボ予備軍。。。orz
Twitter

...............
MVP 審査応募ページ~ 求む、日本のMVP。
MCTS:.NET Framework 2.0: Windows アプリケーション
MCTS:.NET Framework 2.0: Windows アプリケーション

MCSD.NET:マイクロソフト認定ソリューションデベロッパー(MCSD) Microsoft .NET トラック
Microsoft Certified Solution Developer for Microsoft.NET

リンク

わんくま同盟
わんくま同盟

C#VB.NET掲示板
C#VB.NET掲示板

わんくま同盟 Blog's

ちょっと一言(仮)


書庫

日記カテゴリ

2008年8月25日 #

URLのエンコードとデコードに関するメソッド。

なんか、何の脈略もないですが、しかも今さらな内容ですが。
Windows ApplicationでHttpWebRequestとか使うものを作ってて思ったことを書きます。

URLエンコード・デコードする方法でまず思い浮かぶというかMSDNライブラリから見つかる方法として、
ASP.NETのHttpContext.Server オブジェクトから
HttpServerUtility クラス
http://msdn.microsoft.com/ja-jp/library/system.web.httpserverutility.aspx
UrlEncode メソッド
http://msdn.microsoft.com/ja-jp/library/zttxte6w.aspx
UrlDecode メソッド
http://msdn.microsoft.com/ja-jp/library/6196h3wt.aspx
つまり、
HttpUtility クラス
http://msdn.microsoft.com/ja-jp/library/system.web.httputility.aspx
HttpUtility.UrlEncode メソッド
http://msdn.microsoft.com/ja-jp/library/system.web.httputility.urlencode.aspx
HttpUtility.UrlDecode メソッド
http://msdn.microsoft.com/ja-jp/library/system.web.httputility.urldecode.aspx
を使う方法なのですが、
HttpUtility クラスのページをみると、

名前空間: System.Web
アセンブリ: System.Web (system.web.dll 内)

と書いてあります。
Windows Applicationでこれらを使うためには参照の追加でsystem.web.dllを追加しなくてはなりません。
Webアプリ以外でこれをわざわざ追加するのは適切ではありません。

でも、実は参照の追加をしなくても別のURLをエンコード・デコードする方法があります!(皆様すでにご存じかもですが。。。)
Uri クラス
http://msdn.microsoft.com/ja-jp/library/system.uri.aspx
のstatic メソッド
Uri.EscapeDataString メソッド
http://msdn.microsoft.com/ja-jp/library/system.uri.escapedatastring.aspx
Uri.EscapeUriString メソッド
http://msdn.microsoft.com/ja-jp/library/system.uri.escapeuristring.aspx
Uri.UnescapeDataString メソッド
http://msdn.microsoft.com/ja-jp/library/system.uri.unescapedatastring.aspx

これらは、

名前空間 :  System
アセンブリ :  System (System.dll 内)

なので参照の追加は必要ありません!

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~

あいうえおかきくけこさしすせそたちつてとなにぬねの

Uri.EscapeDataString メソッドでエンコード

%20!%22%23%24%25%26'()*%2B%2C-.%2F0123456789%3A%3B%3C%3D%3E%3F%40ABCDEFGHIJKLMNOPQRSTUVWXYZ%5B%5C%5D%5E_%60abcdefghijklmnopqrstuvwxyz%7B%7C%7D~

%E3%81%82%E3%81%84%E3%81%86%E3%81%88%E3%81%8A%E3%81%8B%E3%81%8D%E3%81%8F%E3%81%91%E3%81%93%E3%81%95%E3%81%97%E3%81%99%E3%81%9B%E3%81%9D%E3%81%9F%E3%81%A1%E3%81%A4%E3%81%A6%E3%81%A8%E3%81%AA%E3%81%AB%E3%81%AC%E3%81%AD%E3%81%AE

Uri.EscapeUriString メソッドでエンコード

%20!%22#$%25&'()*+,-./0123456789:;%3C=%3E?@ABCDEFGHIJKLMNOPQRSTUVWXYZ%5B%5C%5D%5E_%60abcdefghijklmnopqrstuvwxyz%7B%7C%7D~

(日本語などはEscapeDataString メソッドとおなじ結果なので省略)

EscapeDataString メソッドはURL(URI)の構成要素の単なる文字列の段階でのエンコードで、EscapeUriStringはURL(URI)になってからのエンコードで使用します。(/や:がそのまま)
日本語の結果の長さの増え方からわかるとおり数値への変換形式はUTF-8です。

デコードするのはどちらもUri.UnescapeDataString メソッドでOKです。

Uri コンストラクタ (String)
http://msdn.microsoft.com/ja-jp/library/z6c2z492.aspx

Uri.AbsoluteUri プロパティ
http://msdn.microsoft.com/ja-jp/library/system.uri.absoluteuri.aspx
などでも、EscapeUriString メソッドと同様なことはできます。
ただ個人的にはstatic メソッドを使う方がきれいだと思います。

posted @ 2:25 | Feedback (1088)

【8/9わんくま東京勉強会#23】個別アンケート - 自分の分をさらしてみるテスト。

いまさらになりますが・・・
8/9のわんくま東京勉強会#23参加者の皆様、ありがとうございました。

当日まで配布資料を完成させることができずに、関係者の皆様にはご迷惑をおかけしてしまいました><
今後はそういうことがないようにします。


点数は満足度を表しています。基準点が100点で、評価4があれば
プラス、評価2,1があればマイナスされます。

Q1.セッションの内容は期待通りでしたか
96.0

Q2.セッションの内容は理解できましたか
136.0

Q3.このセッションを知り合いなどに伝えたいと思いますか
104.0

  • 基本的に押さえておきたい内容がよくまとまっていたと思います。
  • あらためて1つの項目をみつめなおして整理する、というのは面白いテーマでした。が、ちょっとへり下りすぎだったかなあと思いました(あとで言うのは良いけれど、セッション中に自分の発表について、つまらないとか書いてしまうのは、聞く人に失礼かも)。
  • 復習の意味でとてもためになるセッションでした。
  • Collectionもいろいろあるんですね
  • C#のこと、全然知らないので、基本的なところが勉強になった。
  • C#まだやったことないのですが、おもしろかったです。
  • コレクションは面白かったのだけれど、流れがよめなくて、いまいち難しかったですね。
  • うーん…あれ?今何やってたの?今のコードはなに?というのが多くて大変でした。
  • 基礎の実用的な内容でためになった。
  • わかりませんでした。
  • やたら役に立ちました
  • 人柄がよく出ています。やさしい人でしょう。
  • もう少し説明を明確にしてほしかった。


ご感想・ご意見・ご指摘ありがとうございました!
皆様からのご指摘は素直に受け止めて、反省して、改善しますので、また機会があるならばよろしくお願いいたします。

posted @ 1:07 | Feedback (0)