2012-07-31 10 views
5

En Pharo 1.4 abrí un FileSystemReadStream en un archivo de texto y lo transformé en una cadena a través de aFileSystemReadStream contents asString.Cómo decodificar correctamente archivos de texto desde FileSystemReadStream en Pharo 1.4

Mis archivos de texto están codificados en UTF8 y tienen esos saltos de línea de Windows (CR LF).

El resultado Pharo cadenas tienen dos saltos de línea por línea archivo de texto y algunos caracteres extraños en vez de diéresis alemanas como la A, O, U, etc.

Cómo puedo decodificar correctamente mis archivos de texto en Pharo?

Respuesta

8

No utilice FileSystemReadStreams en 1.4, no están completos y con errores;). Use FileStream en su lugar.

multiByteFileStream := FileStream fileNamed: '/foo/bar.txt'. 
multiByteFileStream contents. 

Se devolverá un MultiByteFileStream donde se puede establecer la convención de fin de línea y codificación:

multiByteFileStream 
    "possible values are: #cr #lf #crlf" 
    lineEndConvention: #cr; 
    "set a specific converter, see subclasses of TextConverter" 
    converter: UTF8TextConverter new. 
+0

Puede multiByteFileStream combinarse con el resto del sistema de archivos, o debe ser utilizado con el viejo "Archivos" Sistema de archivos? –

+2

En Pharo 2.0 sobrescribimos 'FileSystem' para usar las secuencias" antiguas ". De lo contrario, agregue un método de extensión en 'FileReference' que hace algo como'^FileStream fileNamed: self fullName' – camillobruni

Cuestiones relacionadas