2009-06-04 13 views
2

我試圖感受如何在UNIX中準確處理字符和字符集,因爲它們存在不同的語言環境 - 並且這樣做不需要UNIX標準項之外的特殊工具。如何準確地在UNIX中轉換字符大小寫? (假設i18N)

我的研究已經顯示了德國尖銳角色的問題:一個角色變成了兩個 - 還有其他問題。使用tr顯然是一個非常糟糕的主意。我看到的唯一的選擇是這樣的:

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

,但我不能肯定,將工作,它需要Perl - 不是一個壞的必然要求,而是一個非常大鐵錘...

什麼awk和grep和sed和...?或多或少,這是我的問題:我怎麼能確定每個地區的文字都是低版本?

+0

你的假設是正確的 – 2010-09-12 18:43:22

回答

2

Perl lc/uc適用於大多數語言,但它無法正確使用土耳其語,請參閱this bug report of mine瞭解詳細信息。但是如果你不需要擔心土耳其語,那麼Perl很好。

+0

那麼,土耳其語「我」是i18n/L10n相關問題的常見來源。 – 2010-09-12 18:45:31

0

您無法確定每個區域設置的文字都是正確的。這是不可能的,軟件庫中有關於國際相關人員實施的一些錯誤。

如果您不害怕使用C++或Java,您可以看看ICU,它們實現了廣泛的整理,規範化等規則集。

相關問題