文字コードを変換する

groovy(java)だとJavaVM上の文字列はUTF-8で扱われる。
String→byte→StrginにしてしまったらUTF-8になってしまう。
byte
を表示してもいいんだけど、あまりうれしくない。

groovyだとFiel#write(String string, String charset) というメソッドが
あるのでこれを使うことにする。
順番的にはI/Oはまだ登場してないので、標準出力に出力したいのだが
PrintStream#printlnではコード変換へできないみたいなのでファイルに出力する。

ソース

new File("SJIStoUTF-8.txt").write("日本語","UTF-8")
new File("SJIStoJIS-8.txt").write("日本語","JIS")
new File("SJIStoEUC.txt").write("日本語","EUC_JP")
new File("SJIStoISO-2022-JP.txt").write("日本語","ISO-2022-JP")

実行環境

結果

groovy:000> load ConvertCharcterCode.groovy
===> null
===> null
===> null
===> null

確認

nkfコマンドで確認する

[D:\workspace\groovy_SandBox]nkf -g SJISto*.txt
SJIStoEUC.txt: EUC-JP
SJIStoISO-2022-JP.txt: ISO-2022-JP
SJIStoJIS-8.txt: ISO-2022-JP

ISO-2022-JP」=「JIS」 なのでこれは問題ない。