2012-07-25 11 views
-1

我使用Python的re模塊審查某些文本。我必須審查ASCII和Unicode文本,所以如果文本是Unicode,我需要設置re的Unicode標誌。有沒有一種方法可以檢測文本是否是Unicode?的Python:檢測的Unicode

+2

只需設置上所有的時間統一標誌。 – nhahtdh 2012-07-25 04:39:42

+1

你怎麼得到混合?你的框架只能*處理'unicode's。 – 2012-07-25 04:39:57

+0

我需要在我的文字逃避特殊字符,所以字符「\」如果我把它變成Unicode是逃避。這就是爲什麼我需要一種方法來找出它是哪種類型的編碼 – 2012-07-25 05:36:33

回答

2

ASCII是Unicode的一個子集,您不必做任何事情 - 除非您有理由懷疑您的文本既不是ASCII也不是Unicode(例如Windows CP 1252等),只需通過defaut使用Unicode即可。

+0

我需要在我的文字逃避特殊字符,所以字符「\」是逃避,如果我把它轉換成Unicode。這就是爲什麼我需要一種方法來找出它是哪種類型的編碼。 – 2012-07-25 05:16:41

+2

將文本編碼爲Unicode不會奇蹟般地轉義字符。 'dda'是正確的,只要在任何地方使用Unicode字符串即可。 – 2012-07-25 07:19:54

0

你可以使用

isinstance(s, unicode) 

,看看如果對象是unicode。但是,如果你把所有的字符串作爲編碼 unicode的,那麼你需要知道的編碼。對於可能成爲惡夢的電子郵件處理應用程序。在過去,我爲此使用了chardet

0

你可以嘗試text.decode('utf-8'),如果它成功,沒有錯誤,文字是UTF-8編碼的Unicode(其中純ASCII是一個子集)。如果是其他內容,即代碼頁,則可能會引發異常。