Ticket #5666 (new bug)
Can't use writeFile to write unicode characters.
| Reported by: | tsou | Owned by: | |
|---|---|---|---|
| Priority: | normal | Milestone: | 7.6.2 |
| Component: | libraries (other) | Version: | 7.4.2 |
| Keywords: | unicode writeFile | Cc: | |
| Operating System: | OpenBSD | Architecture: | x86_64 (amd64) |
| Type of failure: | Runtime crash | Difficulty: | Unknown |
| Test Case: | Blocked By: | ||
| Blocking: | Related Tickets: |
Description
I tried to the "locale" environmental variables to "en_US.utf8", but still I cannot write unicode characters.
source:
main = do
hSetEncoding stdout utf8
putStrLn "αρχίδια"
writeFile "hello.txt" "σκατούλες"
output:
αρχίδια commitBuffer: invalid argument (Illegal byte sequence)
without manually hSetEncoding stdin, putStrLn also fails with the same error message.
From what I was told on #haskell, on linux ghc uses setlocale to figure out what encoding to use, but this is not present in OpenBSD.
Simply making those functions read $LANG (I think) would solve this for OpenBSD, but I might be wrong.
Change History
Note: See
TracTickets for help on using
tickets.
