2009-06-09 57 views
0

我需要一種方法來檢測文件是否包含來自某個字符集的字符。檢測特定字符集的存在

具體而言,我想檢測一系列文件中是否存在UTF8編碼的西里爾字符。有沒有一種工具可以做到這一點?

謝謝

回答

2

如果您正在尋找現成的解決方案,你可能想嘗試Enca

不過,如果你只是想檢測(沒有任何完整的UTF-8有效性檢查)的什麼可以可能解碼爲UTF-8西裏爾字母的存在,你就必須用grep這樣的事情/(\xD0[\x81\x90-\xBF]|\xD1[\x80-\x8F\x91]){ñ,}/(這個確切的正則表達式適用於ñ後續UTF8編碼的俄羅斯西里爾字符)。爲了額外檢查整個文件只包含有效的UTF-8數據,你可以使用類似isutf8(1)的東西。

這兩種方法都有其好的和壞的一面,有時可能會給出錯誤的結果。

+0

指定正則表達式的Grepping解決了我的問題。謝謝! – dasp 2009-06-10 13:00:07

2

IIRC ICRC庫具有執行字符集檢測的代碼。雖然這基本上是一個盡力而爲的猜測。

編輯:我沒記錯的話,看看這個paper/tutorial

+0

謝謝,本教程很有幫助。將其書籤以供將來參考。 – dasp 2009-06-10 13:06:20