Dynamics CRM で、文字列が16進数表現で送られてくるので、変換用に16進数と文字を変換するプログラムをPowerShell で作ってみました。もっと効率のよい方法があれば教えて下さい。

System.Convert::ToInt32 を使用して 文字列をコードに変換して、16進数表現文字列にしています。16進数文字列から文字への変換はその逆の処理をしています。Convert クラスは ToBase64String("文字")などでBase64エンコード、デコードをしたりと素敵なクラスです。

$c = [char] 'が'
[System.Convert]::ToInt32($c).ToString("x")
304c
[System.Convert]::ToChar([System.Convert]::ToInt32("304c", 16))
が

また、Dynamics CRM では、カスタマイズのインポート処理で失敗すると10進数のユニコード文字が表示されることがあります、10進数から文字に総合に変換する場合は次の処理を実施します。

$c = [char] '引'
[System.Convert]::ToInt32($c).ToString("D")
24341
[System.Convert]::ToChar([System.Convert]::ToInt32("24341", 10))
引

そのほか情報として、文字列から10進数、16進数に変換する場合は次のサイトが便利だと思います。

数値文字参照変換スクリプト
http://www.phezzan.net/nelii/blog/num.html
文字コード対応・変換 漢字データ一覧表
http://shimapucchi.blog93.fc2.com/blog-category-35.html

簡単ですが以上です。