在Pharo 1.4中,我打开了一个文本文件上的FileSystemReadStream,并通过aFileSystemReadStream contents asString
将其转换为String。
我的文本文件是UTF8编码的,并且有那些Windows(CR LF)换行符。
由此产生的Pharo字符串在每个文本文件行中有两个换行符和一些奇怪的字符,而不是德语元音变音符,如É、Ö、Ü等。
如何在Pharo中正确解码文本文件?
不要在1.4中使用FileSystemReadStreams,它们不完整且有缺陷;)。请改用FileStream。
multiByteFileStream := FileStream fileNamed: '/foo/bar.txt'.
multiByteFileStream contents.
它将返回一个MultiByteFileStream
,您可以在其中设置行尾约定和编码:
multiByteFileStream
"possible values are: #cr #lf #crlf"
lineEndConvention: #cr;
"set a specific converter, see subclasses of TextConverter"
converter: UTF8TextConverter new.