2017-05-31 187 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電話。

相關問題