我意识到我的文本中的口音会被转换为�。我将其归结为以下示例,该示例写入(并覆盖)文件 test.txt。
它专门使用 Data.Text 中的方法,这些方法应该处理 unicode 文本。我检查了源文件和输出文件都以 utf8 编码。
{-# LANGUAGE OverloadedStrings #-}
import Prelude hiding (writeFile)
import Data.Text
import Data.Text.IO
someText :: Text
someText = "Université"
main :: IO ()
main = do
writeFile "test.txt" someText
运行代码后,test.txt 包含:Universit。在 ghci 中,我得到以下信息
*Main> someText
"Universit\233"
这是否已经编码错误?我还在 https://hackage.haskell.org/package/text-1.2.2.2/docs/Data-Text.html中找到了关于 � 的评论,但我仍然不知道如何更正上面的示例。
如何在 OverloadedString 中使用重音符号并将它们正确写入文件?