Character encoding 如何将unicode文本转换为utf8文本可读?

Character encoding 如何将unicode文本转换为utf8文本可读?,character-encoding,codepages,mojibake,Character Encoding,Codepages,Mojibake,关于Unicode和utf8,我遇到了一个严重的问题, 我将一段阿拉伯语/波斯语文本文件保存到记事本中并保存了下来,现在我看到的信息如下 Êæ Çíä ÓæÑÓ ÈÑäÇãå ÚÏÏ ÏáÎæÇåí Ñæ ÇÒ æÑæÏí ãííÑå æ Èå Øæá åãæä ÚÏÏ ãËáËí Ñæ ÑÓã ãí ˜äå 我的问题是如何取回我的数据,取回这些数据对我来说很重要,提前感谢该段落通过保存为代码页1256阿拉伯文/波斯文进行了混乱,然后被解释为代码页1252西欧,最后保存为Unicode文本。

关于Unicode和utf8,我遇到了一个严重的问题, 我将一段阿拉伯语/波斯语文本文件保存到记事本中并保存了下来,现在我看到的信息如下

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

我的问题是如何取回我的数据,取回这些数据对我来说很重要,提前感谢

该段落通过保存为代码页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);
纯文本输出为:
在1578 8月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月日日日日日日日日日日日日日日日日的的的的的,,在在在在在15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日,,,在在在在在在在在在在在在在在在在的的的的的各各各各各各在Linux上,您可以使用Gedit将其作为1256编码文件打开:

gedit shahnameh.txt --encoding WINDOWS-1256

您可以通过gui完成相同的工作。打开文件时,只需从“打开”对话框中选择正确的编码。它应该位于“打开”对话框的底部。

记事本中的“打开”框有一个名为“编码”的下拉列表-只需将其设置为UTF-8即可。另外,如果这个问题实际上是关于编写一个程序来读取UTF-8数据,请编辑这个问题并使其更清楚。完美!你能告诉我你用什么连接吗:字符串加扰;这只是表面上的。我将字符串分成两部分,以防止滚动条出现在答案中。