我有以下代码:
def f = new File("test.txt")
f.write("test", "UTF-8")
在Notepad ++(或任何其他编辑器)中打开文件时,它仍然是ISO-8859-1而不是UTF-8。在十六进制编辑器中打开文件,它不包含"魔术字节" 0xEFBBBF
。
的问候,
罗伯特
答案 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()