我有以下代码:
def f = new File("test.txt")
f.write("test", "UTF-8")
在 Notepad++(或任何其他编辑器)中打开文件时,它仍然是 ISO-8859-1 而不是 UTF-8。在十六进制编辑器中打开文件,它不包含“魔术字节” 0xEFBBBF
。
问候,
罗伯特
我有以下代码:
def f = new File("test.txt")
f.write("test", "UTF-8")
在 Notepad++(或任何其他编辑器)中打开文件时,它仍然是 ISO-8859-1 而不是 UTF-8。在十六进制编辑器中打开文件,它不包含“魔术字节” 0xEFBBBF
。
问候,
罗伯特
UTF-8 文件实际上并不需要字节顺序标记指示符。
例如,如果您的 UTF-8 文件仅包含 ASCII 字符,则该file
实用程序将返回:
$ file [filename]
ASCII text
但是,当您将日语字符引入该文件时,file
它将返回:
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()