我应该使用groovy以ANSI格式创建一个导出文件。 当我将文件写入磁盘并在“ Notepad ++”或nano中打开时,特殊字符(例如“äüö”)无法正确显示。 Notepad ++将“ Windows-1255”显示为编码。
我已经尝试过更改编码并另外转换字符串
import java.io.FileWriter
import java.io.BufferedWriter
import java.io.InputStream
import java.nio.charset.Charset
import java.nio.charset.StandardCharsets
String fullPath = "/tmp/jamesTempFiles/ansi.txt"
BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(fullPath), "Cp1252"))
//doesn't work either when i use the following line instead
//BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(fullPath), "windows-1252"))
String input = "test\r\näüöß"
writer.write(input)
//doesn't work either when i use the following line instead
//writer.write(new String(input.getBytes(Charset.forName("utf-8"))))
writer.close()
在Notepad ++中,文件如下所示 https://pasteboard.co/Inj3SL2.png 第二行中的字符应为: äüöß
答案 0 :(得分:0)
我认为我可能偶然发现了记事本++中的错误。 将测试字符串更改为实际数据时,notepad ++确实开始将特殊字符解释为例外。