2012-07-31 4 views
5

Pharo 1.4では、テキストファイルにFileSystemReadStreamを開き、それをaFileSystemReadStream contents asStringで文字列に変換しました。Pharo 1.4のFileSystemReadStreamからテキストファイルを正しくデコードする方法

私のテキストファイルはUTF8でエンコードされており、これらのWindows(CR LF)改行があります。

結果ファロ文字列ではなく、Ä、Öのようなドイツ語のウムラウトのテキストファイルの行といくつかの奇妙な文字ごとに2つの改行、Üなど

どのように私は正しくファロで私のテキストファイルをデコードすることができますがありますか?

答えて

8

1.4でFileSystemReadStreamを使用しないでください。完全ではなく、バグではありません。代わりに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. 
+0

は、ファイルシステムの残りの部分とmultiByteFileStreamを組み合わせることができます、またはそれは昔の「ファイル」を使用する必要がありますファイルシステム? –

+2

Pharo 2.0では、「古い」ストリームを使用するために 'FileSystem'を上書きしました。それ以外の場合は、 'FileStream fileNamed:self fullName'のような拡張メソッドを' FileReference'に追加します – camillobruni

関連する問題