MR K P SCHUPKE wrote: > >E.g. what happens if you call getDirectoryContents for a directory > >which contains filenames which aren't valid in the current encoding? > > Surely this shows the problem with the idea of a 'current encoding'
Yes. In case I haven't already made this clear, my argument is essentially that it's the API which is broken, rather than the implementations. > ... You could be reading files from two remote servers each using > different encodings... > > So you could have read and write raw [Word8] and read and write char, > somehting like: > > readWithEncoder :: ([Word8] -> [Char]) -> IO [Char] > writeWithEncoder :: ([Char] -> [Word8]) -> [Char] -> IO () In the general case, it needs to be a bit more complex than that, in order to handle stateful encodings (e.g. ISO-2022), or to handle decoding multi-byte encodings (e.g. UTF-8) in chunks. Unfortunately, the iconv interface doesn't allow the encoder state to be extracted, so a generic iconv-based converter would have to be in the IO monad. -- Glynn Clements <[EMAIL PROTECTED]> _______________________________________________ Haskell-Cafe mailing list [EMAIL PROTECTED] http://www.haskell.org/mailman/listinfo/haskell-cafe