文字コードを変換する
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")
実行環境
- OS:Windows XP
- Groovy Version: 1.6.5
- JVM: 1.6.0_12
結果
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」 なのでこれは問題ない。