2017-05-31 252 views

回答

11

text-icu库包含各种Unicode实用程序。我们还需要text库来将我们的String转换为Text

build-depends:  --- other packages... 
        , text-icu >= 0.7.0.1 && < 1 
        , text 

在安装,我们可以删除与下列过程口音那些依赖关系:

  1. 将输入StringText
  2. 我在我的阴谋文件中添加以下两行 build-depends安装它们
  3. 标准化输入(请参阅documentation为什么这是必要的)
  4. 筛选出口音
  5. 转换回String

保持所有考虑到这一点,我们提出了以下功能:

import Data.List 
import qualified Data.Text as T 
import Data.Text.ICU.Char 
import Data.Text.ICU.Normalize 

canonicalForm :: String -> String 
canonicalForm s = T.unpack noAccents 
    where 
    noAccents = T.filter (not . property Diacritic) normalizedText 
    normalizedText = normalize NFD (T.pack s) 

如果你不需要从String转换,你可以跳过T.packT.unpack电话。

相关问题