2017-05-31 10 views

答えて

11

text-icuライブラリには、さまざまなUnicodeユーティリティが含まれています。 StringTextに変換するには、textライブラリも必要です。 Textに入力Stringを変換

  1. :、我々は次のプロセスでアクセントを削除することができますがインストールされているものの依存関係で

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

    :私は私の秘密結社ファイルにbuild-dependsに以下の2行を追加することによって、それらをインストール

  2. 入力を正規化します(これが必要な理由については、documentationを参照してください)
  3. アクセントをフィルターにかける
  4. 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呼び出しをスキップすることができます。

関連する問題