我遇到了关于Unicode和utf8的严重问题, 我将一段阿拉伯语/波斯文本文件保存到记事本中并保存,现在我看到了我的信息,如
Êæ Çíä ÓæÑÓ ÈÑäÇãå ÚÏÏ ÏáÎæÇåí Ñæ ÇÒ æÑæÏí ãííÑå æ Èå Øæá åãæä ÚÏÏ ãËáËí Ñæ ÑÓã ãí ˜äå
我的问题是如何取回我的数据,对于我来说,重要的是要获得这些数据,提前感谢
答案 0 :(得分: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);
纯文本输出是: “تواينسورسبرنامهعدددلخواهيروازوروديميگيرهوبهطولهمونعددمثلثيرورسمميکنه”
答案 1 :(得分:1)
在Linux上,您可以使用Gedit将其打开为1256编码文件:
gedit shahnameh.txt --encoding WINDOWS-1256
你可以通过gui做同样的工作。您只需在打开文件时从“打开”对话框中选择正确的编码。它应该位于打开对话框的底部。