2016-08-02 6 views
4

Příliš žluťoučký kůň úpěl ďábelské ódy.などの文字列をPrilis zlutoucky kun upel dabelske ody.に変換するにはどうすればよいですか?文字列から発音区別記号(ウムラウト)を削除するにはどうすればよいですか?

ソース文字列はUnicodeなので、原理的には正規化/分解を使用してウムラウトを分離することが可能でなければなりません。

残念ながら、私はPharo(おそらく亜鉛はどこかに隠されていましたか?)で、ウムラウトまたは分解をストリッピングするライブラリを見ませんでした。

答えて

4

あなたは私が(大規模なデータセットに適用することができつもりはないよう

インストール

Metacello new 
    smalltalkhubUser: 'Pharo' project: 'MetaRepoForPharo50'; 
    configuration: 'Diacritics'; 
    version: #development; 
    load. 

テスト

'Příliš žluťoučký kůň úpěl ďábelské ódy' asNonDiacritical. 
"'Prilis zlutoucky kun upel dabelske ody'" 
2

私の知ると、あなたはおそらく彼らのSmalltalkの実装を使用したくないだろうので、これを行うことができ、アルゴリズムのは、非常に高価である限り、ありません。私が働いている会社では、libicuへの呼び出しを行うVMプラグインを作成しました。そうすれば、私たちは別の実装を維持してネイティブスピードから利益を得る必要はありません。参考までにICUを参照してください。

+0

パフォーマンスは、本当に問題ではありませんDiacriticalsパッケージを試すことができます変換テーブルを使用しますが、それはかなりエラーが発生しやすいです)。しかし、あなたが提案しているのは 'libicu'のためのUFFIライブラリを書くことです? –

+0

はい、かなり。残念ながら、私たちが書いたプラグインは、Squeakの4 VMのためであり、私はそれが新しいVMのにポータブルだどれだけよく分かりません。 –

関連する問題