Muni Bus

パソコンの操作方法や設定方法を忘れないようにメモしています。ブログを一回引っ越ししているので、所々表示がかなり乱れています・・・

【PowerShell】文字列のパーセントエンコーディングを行う

HttpUtilityクラスのUrlEncodeメソッドを使うと、パーセントエンコーディングすることができる。逆にUrlDecodeメソッドはデコードすることができる。あらかじめAdd-TypeコマンドレットでSystem.Drawing名前空間を現在のセッションに追加しておく必要がある。引数に文字列だけ指定した場合は、UTF-8文字コードで作成した結果を返す。

PS > Add-Type -AssemblyName System.Web
PS > [System.Web.HttpUtility]::UrlEncode("石見舞菜香")
%e7%9f%b3%e8%a6%8b%e8%88%9e%e8%8f%9c%e9%a6%99
PS > [System.Web.HttpUtility]::UrlDecode("%e7%9f%b3%e8%a6%8b%e8%88%9e%e8%8f%9c%e9%a6%99")
石見舞菜香

UrlEncodeメソッドの第2引数に文字コードを指定すれば、指定した文字コードに応じて変換した値が返る。UrlDecodeメソッドも同様。以下はShift_JISで変換した例。

PS > [System.Web.HttpUtility]::UrlEncode("石見舞菜香", [System.Text.Encoding]::GetEncoding("shift_jis"))
%90%ce%8c%a9%95%91%8d%d8%8d%81
PS > [System.Web.HttpUtility]::UrlDecode("%90%ce%8c%a9%95%91%8d%d8%8d%81", [System.Text.Encoding]::GetEncoding("shift_jis"))
石見舞菜香