kkamegawa's weblog

Visual Studio,TFS,ALM,VSTS,DevOps関係のことについていろいろと書いていきます。Google Analyticsで解析を行っています

いわゆる半角カナ in ISO-2022-JPは.NETのEncodingで使える?

近所のJavaの人たちが「JISコードをJavaでエンコーディングを指定しても読み込ませることができない」みたいなことを嘆いていました。どうも聞いたらSHIFT-JISをエンコーディングに指定していたようだったのですが…。エディタの自動判定機能でSHIFT-JISと判定されていたからとのこと。あーいわゆる半角カナのエリアが出てきたらSHIFT-JISと判定されても仕方ないか。
でも、ちょっと気になったので.NET Frameworkで使えるのか?と思って実験。

  • 秀丸で「これは半角カナです。」という一文を書いて、JISを指定して保存。
  • PowerShellでこんなの書いた。変数名はまぁ御愛嬌で…。
$a =  "C:\test\JIS.txt"
$aa =  "C:\test\unicode.txt"
$encode = [System.Text.Encoding]::getencoding("iso-2022-jp")
$b = new-object system.io.streamreader $a, $encode
$c = new-object system.io.streamwriter $aa, $false
$d = $b.readline()
$c.writeline($d)
$b.close()
$c.close()

例外も発生せず、見事に変換した。なるほど…。