在当天,每个人都习惯用String
进行文字处理。但是后来有些人指出这实际上非常非常低效,并且ByteString
包诞生了。
ByteString
非常适合处理二进制数据。但很快人们就指出ByteString.Char8
实际上是一个巨大的kludge,你真正想要的是真正的 Unicode处理外部数据。有了它,用于处理打包的Unicode字符串的大约30个类似但不兼容的Haskell包诞生了。并且没有一个能够真正获得任何牵引力,因为......好吧,三十个太多了!
我的问题:这个问题已修复了吗?换句话说,社区是否已选择一个包来完成这项工作?如果是这样,那是哪一个?
答案 0 :(得分:11)
我认为目前的黄金标准是Data.Text,你可以用
安装$ cabal install text
您应该将其限定为
import qualified Data.Text as T
您可以通过从Text
明确转换来在代码中创建String
值,如
>> let str = T.pack "Hello, world"
或使用OverloadedStrings
语言扩展程序
>> :set -XOverloadedStrings
>> let str = "Hello, world" :: Text