cannot print records with labels that contain Unicode characters
# see for yourself
1. Create files as follows:
* `cassava-unicode.cabal`
``` Cabal
cabal-version: 3.0
name: cassava-unicode
version: 0.1.0.0
executable cassava-unicode
main-is: Main.hs
build-depends: base, cassava, bytestring
hs-source-dirs: app
default-language: Haskell2010
```
* `app/Main.hs`
``` Haskell
{-# LANGUAGE DeriveGeneric #-}
module Main where
import GHC.Generics
import qualified Data.Csv as Csv
import qualified Data.ByteString.Lazy as Bytes
data Ξ = Ξ {ξ :: Int} deriving (Generic)
instance Csv.ToNamedRecord Ξ
instance Csv.DefaultOrdered Ξ
main :: IO ()
main = Bytes.putStr (Csv.encodeDefaultOrderedByName [Ξ {ξ = 0}])
```
1. Run `cabal run` in command line.
# what should happen
A single row of CSV is printed, preceded by a header.
# what does happen
```
cassava-unicode: Uncaught exception ghc-internal:GHC.Internal.Exception.ErrorCall:
Data.Csv.Encoding.namedRecordToRecord: header contains name "\190" which is not present in the named record
HasCallStack backtrace:
error, called at src/Data/Csv/Encoding.hs:338:24 in cassava-0.5.4.1-a9e31c482b17af1df9a0e84111b5c8cff967d1a40cd48edc5a44579637a7df84:Data.Csv.Encoding
```
# versions
* GHC 9.12.2
* `cassava` 0.5.4.1
* `text` 2.1.2
* `bytestring` 0.12.2.0
2 条评论