i/o encodings
Bulat Ziganshin
bulat.ziganshin at gmail.com
Fri Feb 1 09:36:54 EST 2008
Hello Ketil,
Friday, February 1, 2008, 4:29:02 PM, you wrote:
>> may be it's too draconian restriction but i proposed just to use new
>> library in the new code.
> For backwards compatibility, I agree it would be preferable to retain
> the current default implementation, but opinions appear to differ.
> Whatever.
the problem is not abstract "backward compatibility" but programs that
switches from the old lib to the new one. they should get exactly the
old services for old names - in order to not rewrite program
new programs what need new behavior just need to import new interface
which may provide UTF-8 encoding for text files by default
>> f <- openFile "name"
>> content <- readLine f -- read first line using Latin-1
>> f' <- withEncoding (lookup content) f
>> str <- readLine f' -- read second line using encoding given on first line
> This is clear enough, but for the BOM-dependent decoding, you may have
> to do the equivalent of having the next call to 'readLine' re-read the
> first line instead.
it's not a problem - file pointer is retained in f and f' just
interprets the bytes it read:
f <- openFile "name"
bom <- readBytes 4 f -- read first 4 bytes
vRewind f
f' <- withEncoding (lookup bom) f
str <- readLine f' -- read first line using BOM encoding
--
Best regards,
Bulat mailto:Bulat.Ziganshin at gmail.com
More information about the Libraries
mailing list