2

さまざまなロケールが存在することを考慮して、UNIX で文字と文字セットを正確に操作する方法の感触をつかもうとしています。UNIX 標準アイテム以外の特別なツールを必要とせずに操作できます。

私の調査では、ドイツ語のシャープ s 文字の問題、つまり 1 つの文字が 2 つに変化すること、およびその他の問題が示されました。tr を使用することは明らかに非常に悪い考えです。私が見る唯一の代替案はこれです:

echo StUfF | perl -n -e "print lc($_);"

しかし、それが機能するかどうかは確信が持てず、Perlが必要です-必ずしも悪い要件ではありませんが、非常に大きなハンマーです...

awk と grep と sed と ... はどうですか? 多かれ少なかれ、それが私の質問です。すべてのロケールでテキストが小文字になることをどのように確認できますか?

4

2 に答える 2

2

Perl lc/uc はほとんどの言語で問題なく動作しますが、トルコ語では正しく動作しません。詳細については、私のこのバグ レポートを参照してください。しかし、トルコ語について心配する必要がない場合は、Perl で十分です。

于 2009-06-04T19:37:13.917 に答える
0

すべてのロケールでテキストが正しいとは限りません。それは不可能です.i18n関連のスタッフの実装に関して、ソフトウェアライブラリには常にいくつかのエラーがあります.

C++ や Java を使用することを恐れていない場合は、広範な照合、正規化などの規則を実装するICUを検討してください。

于 2010-09-12T18:53:55.037 に答える