2014-03-12 23 views
0

我有一個字節類對象,我需要將其轉換爲字符串。我用.decode(「格式化」)方法(格式= UTF-8,拉丁-1,UTF-16。等)首先,我想知道在哪個區域對其進行編碼,這樣我可以對其進行解碼到適當的區域設置。如何找出它被編碼到的語言環境?

+0

您可能正在尋找它的編碼,而不是它的語言環境是什麼。幾乎不可能從單個字節中知道它的編碼是什麼。如果從用戶輸入讀取輸入,則當前系統區域設置可能是很好的啓發式,但是對於例如在窗體中的HTML表單控制編碼,並且對於磁盤上的文件中的字節,在沒有額外的外部指示符的情況下基本不可能分辨出來。 – tripleee

回答

0

也許使用locale.getdefaultlocale()來確定默認的語言環境設置,請訪問Internationalization services更多細節。

+0

我想它會給我係統默認的區域設置。我需要找出該特定的字節類編碼語言環境。 – Sagar

+0

你可以把你的代碼放在這裏嗎?對不起,我有點困惑一個字節類有它的編碼語言環境。 – linpingta

+0

http://bazaar.launchpad.net/~gtg/gtg/trunk/view/head:/GTG/gtk/editor/taskview.py#L185線185給出了錯誤。作爲GtkSelectionData不必須。數據屬性需要更換與返回字節類對象和insert_at_cursor .get_data()方法()接受字符串。 – Sagar

2

不是很確定如果你正在尋找,但我想你可以使用chardet

import chardet 
result = chardet.detect('string') 
encoding = result['encoding'] 
+0

是它給我的編碼類型,但是當我拖動文本和使用解碼(編碼),那麼它給了我一些其他的事情。它應該回到我的UTF-8或只是英文文本只是 – Sagar

+0

當你解碼一個字符串,你將得到的unicode 如果你想獲得「UTF-8」或任何其他編碼: 首先,檢測的編碼,解碼,然後其編碼到任何你想要的編碼。 – Taxellool