2013-10-27 124 views
2

我關於Unicode和UTF8, 我救了阿拉伯語/波斯語的文本文件的段落到記事本中的一個嚴重問題,並保存它,現在我看到了我的信息,如如何將unicode文本轉換爲utf8文本可讀?

Êæ Çíä ÓæÑÓ ÈÑäÇãå ÚÏÏ ÏáÎæÇåí Ñæ ÇÒ æÑæÏí ãííÑå æ Èå Øæá åãæä ÚÏÏ ãËáËí Ñæ ÑÓã ãí ˜äå 

我的問題是,如何找回我數據,重要的是我得到這些數據,提前致謝

+0

記事本中的「打開」框中有一個名爲'Encoding'的下拉菜單 - 只需將它設置爲'UTF-8'。附:如果這個問題實際上是關於*編寫程序*來讀取UTF-8數據,那麼編輯問題並使其更加清晰。 –

回答

2

段落被保存爲代碼頁1256(阿拉伯語/波斯語),然後解釋爲代碼頁1252(西歐),最後保存作爲Unicode文本。您可以使用C#來扭轉這一過程:

string scrambled = "Êæ Çíä ÓæÑÓ ÈÑäÇãå ÚÏÏ ÏáÎæÇåí Ñæ ÇÒ æÑæÏí ãííÑå æ " + 
        "Èå Øæá åãæä ÚÏÏ ãËáËí Ñæ ÑÓã ãí ˜äå"; 
byte[] bytes = Encoding.GetEncoding("windows-1252").GetBytes(scrambled); 
string plainText = Encoding.GetEncoding("windows-1256").GetString(bytes); 
Console.WriteLine(text); 

純文本輸出爲: 「تواينسورسبرنامهعدددلخواهيروازوروديميگيرهوبهطولهمونعددمثلثيرورسمميکنه」

+0

知府!你能告訴我你有串聯: 串炒=「EAE CIAÓæÑÓÈÑäÇãåUIIÏáÎæÇåíNAE合作æÑæÏíãííÑåAE」 + 「EAØæáåãæäUIIãËáËíNAE NOA AI~äå」; –

+0

這僅僅是化妝品。我將字符串分成兩部分以防止滾動條出現在答案中。 –

1

在Linux可以用gedit打開它作爲1256編碼文件:

gedit shahnameh.txt --encoding WINDOWS-1256 

您可以通過圖形用戶界面做同樣的工作。您只需在打開文件時從「打開」對話框中選擇正確的編碼。它應該位於打開的對話框的底部。