Groovy脚本不会将文件写为UTF-8

时间:2011-12-07 08:24:00

标签: groovy utf-8 file-writing

我有以下代码:

def f = new File("test.txt")
f.write("test", "UTF-8")

在Notepad ++(或任何其他编辑器)中打开文件时,它仍然是ISO-8859-1而不是UTF-8。在十六进制编辑器中打开文件,它不包含"魔术字节" 0xEFBBBF

的问候,
罗伯特

2 个答案:

答案 0 :(得分:4)

UTF-8文件do not really require the Byte-Order Mark indicator

例如,如果您的UTF-8文件只包含ASCII字符,file实用程序将返回此字符:

$ file [filename]
ASCII text

但是当您将日语字符引入该文件时,file将返回此信息:

UTF-8 Unicode text

..但该文件不会以BOM开头。

答案 1 :(得分:0)

请记住,Groovy是基于Java的。只需写:

File outFile = new File(filePath)
Writer out = new BufferedWriter(new OutputStreamWriter(
                new FileOutputStream(outFile), "UTF8"));
out.append(strBuf.toString())
out.flush()
out.close()