文字コードの変換
// それぞれの文字コードで書かれたテキスト
def sjis = /C:\work\sjis/
def euc = /C:\work\euc/
def utf8 = /C:\work\utf8/
// sjisのファイルをそれぞれの文字コードで出力
new File(sjis + "_sjis").write(new File(sjis).getText("MS932"),"MS932")
new File(sjis + "_euc").write(new File(sjis).getText("MS932"),"EUC_JP")
new File(sjis + "_utf8").write(new File(sjis).getText("MS932"),"UTF-8")
// eucのファイルをそれぞれの文字コードで出力
new File(euc + "_sjis").write(new File(euc).getText("EUC_JP"),"MS932")
new File(euc + "_euc").write(new File(euc).getText("EUC_JP"),"EUC_JP")
new File(euc + "_utf8").write(new File(euc).getText("EUC_JP"),"UTF-8")
// utf8のファイルをそれぞれの文字コードで出力
new File(utf8 + "_sjis").write(new File(utf8).getText("UTF-8"),"MS932")
new File(utf8 + "_euc").write(new File(utf8).getText("UTF-8"),"EUC_JP")
new File(utf8 + "_utf8").write(new File(utf8).getText("UTF-8"),"UTF-8")
改行コードの変換
// LFに変換
assert "hoge\r\nhoge".normalize() == "hoge\nhoge"
assert "hoge\nhoge".normalize() == "hoge\nhoge"
// 実行環境に依存した改行コードに変換
// ※Windows環境以外では例外が投げられます。
assert "hoge\nhoge".denormalize() == "hoge\r\nhoge"
assert "hoge\rhoge".denormalize() == "hoge\r\nhoge"
参考
http://d.hatena.ne.jp/orangeclover/20100103/1262483981
http://d.hatena.ne.jp/orangeclover/20110111/1294676227
http://npnl.hatenablog.jp/entry/20110325/1301006575