[Haskell-cafe] invalid character encoding

Simon Marlow simonmar at microsoft.com
Wed Mar 16 04:34:00 EST 2005

On 16 March 2005 03:54, Ian Lynagh wrote:

> On Tue, Mar 15, 2005 at 10:44:28AM +0000, Ross Paterson wrote:
>> On Mon, Mar 14, 2005 at 07:38:09PM -0600, John Goerzen wrote:
>>> I've got some gzip (and Ian Lynagh's Inflate) code that breaks
>>> under the new hugs with: 
>>>  <handle>: IO.getContents: protocol error (invalid character
>>> encoding) 
>>> What is going on, and how can I fix it?
>> A Haskell 98 Handle is a character stream, and doesn't support binary
>> I/O.  This would have bitten you sooner or later on systems that do
>> CRLF conversion, but Hugs is now much stricter, because character
>> streams now use the encoding determined by the current locale (for
>> the C locale, that means ASCII only).
> Do you have a list of functions which behave differently in the new
> release to how they did in the previous release?
> (I'm not interested in changes that will affect only whether something
> compiles, not how it behaves given it compiles both before and after).
> Simons, Malcolm, are there any such functions in the new ghc/nhc98?
> Also, are you all agreed that the hugs interpretation of the report is
> correct, and thus ghc at least is buggy in this respect? (I'm afraid I
> haven't been able to test nhc98 yet).

GHC (and nhc98) assumes a locale of ISO8859-1 for I/O.  You could
consider that to be a bug, I suppose.  We don't plan to do anything
about it in the context of the current IO library, at least.


More information about the Haskell-Cafe mailing list