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

Groovy脚本不将文件作为UTF-8写入,groovy,utf-8,file-writing,Groovy,Utf 8,File Writing,我有以下代码: def f = new File("test.txt") f.write("test", "UTF-8") 在记事本++(或任何其他编辑器)中打开文件时,文件仍在ISO-8859-1中,而不是UTF-8中。在十六进制编辑器中打开文件时,它不包含“魔法字节”0xEFBBBF 问候, 罗伯特UTF-8文件 例如,如果您的UTF-8文件仅包含ASCII字符,文件实用程序将返回以下内容: $ file [filename] ASCII text UTF-8 Unicode text

我有以下代码:

def f = new File("test.txt")
f.write("test", "UTF-8")
在记事本++(或任何其他编辑器)中打开文件时,文件仍在ISO-8859-1中,而不是UTF-8中。在十六进制编辑器中打开文件时,它不包含“魔法字节”
0xEFBBBF

问候,
罗伯特

UTF-8文件

例如,如果您的UTF-8文件仅包含ASCII字符,
文件
实用程序将返回以下内容:

$ file [filename]
ASCII text
UTF-8 Unicode text
但是,当您在该文件中引入日文字符时,
file
将返回以下内容:

$ file [filename]
ASCII text
UTF-8 Unicode text

。。但是文件不会以BOM开头。

记住,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()

+1-此外,众所周知,BOM会破坏许多不期望的程序!