1

我读了一个用 Windows-1250 编码的文件。我将每一行读入一个列表,然后执行一些附加操作并将集合存储到一个新文件中。

问题。如果我明确编写编码,则输出文件似乎编码错误。如果我不设置任何编码,则输出正常。

enrichedFile.withWriter("windows-1250") { out ->
     tempFinalList.each() { line ->
          out.println line
     } 
}

=> 输出错误

enrichedFile.withWriter { out ->
     tempFinalList.each() { line ->
         out.println line
     }
}

=> 好的。

仅供参考:我将它用于带有字母的捷克语:ěščřžýáíé。

4

1 回答 1

1

我看不出有什么问题。

def myFile = new File('./Archive/file.txt')
def tempFinalList = []

//Reading from the file with windows charset
myFile.withReader('windows-1250') { out ->
    out.eachLine{
        tempFinalList << it
    }
}

//Appending stuff
tempFinalList << 'a' << 'b'

//Creating a new file
def newFile = new File('./Archive/NewFile.txt')

//Writing to the new file with windows charset
newFile.withWriter('windows-1250'){out ->
    tempFinalList.each{out.writeLine it}
}

newFile.eachLine{println it}

其中 content offile.txt包含您提到的捷克字符。

最后一行的输出:

ešcržýáíé
ešcržýáíé
ešcržýáíé
ešcržýáíé
ešcržýáíé
a
b
于 2013-09-06T14:38:21.823 回答