2

我有以下代码:

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

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

问候,
罗伯特

4

2 回答 2

4

UTF-8 文件实际上并不需要字节顺序标记指示符

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

$ file [filename]
ASCII text

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

UTF-8 Unicode text

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

于 2011-12-07T08:33:52.570 回答
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()
于 2019-11-22T05:55:28.377 回答