2013-10-27 44 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 

您可以通过图形用户界面做同样的工作。您只需在打开文件时从“打开”对话框中选择正确的编码。它应该位于打开的对话框的底部。