haskell-servant/servant

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

Open

#1239 aperta il 5 nov 2019

Vedi su GitHub
 (4 commenti) (0 reazioni) (0 assegnatari)Haskell (422 fork)batch import
bughelp wanted

Metriche repository

Star
 (1953 star)
Metriche merge PR
 (Merge medio 23h 44m) (4 PR mergiate in 30 g)

Descrizione

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.

Guida contributor