haskell-servant/servant

UTF-8 `É` incorrectly read as `Ã`

Open

#1 239 ouverte le 5 nov. 2019

Voir sur GitHub
 (4 commentaires) (0 réactions) (0 assignés)Haskell (422 forks)batch import
bughelp wanted

Métriques du dépôt

Stars
 (1 953 stars)
Métriques de merge PR
 (Merge moyen 23h 44m) (4 PRs mergées en 30 j)

Description

Hello, I've noticed that my Servant handler is incorrectly reading É as Ã. I've been able to isolate it to the handler, but no luck beyond that.

Mac: macOS Mojave - Version 10.14.6 Stack: Version 2.1.3, Git revision 0fa51b9925decd937e4a993ad90cb686f88fa282 (7739 commits) x86_64 hpack-0.31.2 GHC: The Glorious Glasgow Haskell Compilation System, version 8.4.3

When submitting the following request:

curl -i -X POST -H "Content-Type: text/plain; charset=utf-8" --data "{\"constraints\": [{\"column\": \"author\", \"values\": [\"CÉZANNE, Paul\"]}]}" http://localhost:8080/myEndpoint

... To the following Servant handler:

queryPaintings :: Pool Connection -> String -> Handler PaintingsResponse
queryPaintings conns constraintsInfo =
		...
      withResource conns $ \conn -> do
        _ <- putStrLn $ "constraintsInfo: " ++ constraintsInfo
        _ <- putStrLn "CÉZANNE, Paul"
		...

... Those putStrLn lines give:

constraintsInfo: {"constraints": [{"column": "author", "values": ["CÉZANNE, Paul"]}]}
CÉZANNE, Paul

Question:

Why, in the first line, do I have CÃZANNE instead of the desired CÉZANNE?

(I’ve alternatively tried having curl read a UTF-8 formatted text file — but same result.)

Many thanks in advance for your help.

Guide contributeur