我有以下代码:
def f = new File("test.txt")
f.write("test", "UTF-8")
在 Notepad++(或任何其他编辑器)中打开文件时,它仍然采用 ISO-8859-1 而不是 UTF-8。在十六进制编辑器中打开该文件,它不包含“魔术字节”0xEFBBBF
。
问候,
罗伯特
最佳答案
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 开头。
关于Groovy 脚本不会将文件写入 UTF-8,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8412274/