我有一个包含以下字符的文件:
ÇËÅÊÔÑÏÖÏÑÇÓÇÁÉÌÏÓÖÁÉÑÉÍÇÓ
我试图将其转换为希腊语单词,结果应该是:
ΗΕΕΚΤΡΟΦΟΡΗΣΗΑΙΜΟΣΦΑΙΡΙΝΗΣ
上述值以Unicode格式存储的文件.
我正在应用所有可能的编码,但在转换中没有运气.
private void Convert()
{
string textFilePhysicalPath = (@"C:\Users\Nec\Desktop\a.txt");
string contents = File.ReadAllText(textFilePhysicalPath);
List<string> sLines = new List<string>();
// For every encoding, get the property values.
EncodingInfo ei;
foreach (var ei in Encoding.GetEncodings())
{
Encoding e = ei.GetEncoding();
Encoding iso = Encoding.GetEncoding(ei.Name);
Encoding utfx = Encoding.Unicode;
byte[] utfBytes = utfx.GetBytes(contents);
byte[] isoBytes = Encoding.Convert(utfx, iso, utfBytes);
string msg = iso.GetString(isoBytes);
string xx = (ei.Name + " " + msg);
sLines.Add(xx);
}
using (StreamWriter file = new StreamWriter(@"C:\Users\Nec\Desktop\result.txt"))
{
foreach (var line in sLines)
file.WriteLine(line);
}
}
Run Code Online (Sandbox Code Playgroud)
能正确将其转换一个网站是http://www.online-decoder.com/el
但即使当我使用ISO-8859-1到ISO-8859-7它仍然无法在.NET中工作.
此代码使用通用的ISO-8859-1代码页将字符串从C#(UTF-16)转换为8位表示.然后使用希腊代码页windows-1253将其转换回UTF-16.结果????????????? ?????????????如你所愿.
string errorneousString = "ÇËÅÊÔÑÏÖÏÑÇÓÇ ÁÉÌÏÓÖÁÉÑÉÍÇÓ";
byte[] asIso88591Bytes = Encoding.GetEncoding("ISO-8859-1").GetBytes(errorneousString);
string asGreekString = Encoding.GetEncoding("windows-1253").GetString(asIso88591Bytes);
Console.OutputEncoding = System.Text.Encoding.UTF8;
Console.WriteLine(asGreekString);
Run Code Online (Sandbox Code Playgroud)
编辑:由于您的文件是以8位格式编码的,因此您需要在阅读时指定代码页.用这个:
string fileContents = File.ReadAllText("189.dat", Encoding.GetEncoding("windows-1253"));
Console.OutputEncoding = System.Text.Encoding.UTF8;
Console.WriteLine(fileContents);
Run Code Online (Sandbox Code Playgroud)
将内容读为
'CS','CSF EXAMINATION','ΕΞΕΤΑΣΗΕ.Ν.Υ.' 'EH','Hb ELECTROPHORESIS','ΗΛΕΚΤΡΟΦΟΡΗΣΗΑΙΜΟΣΦΑΙΡΙΝΗΣ''EP','蛋白质电泳','ΗΛΕΚΤΡΟΦΟΡΗΣΗΠΡΩΤΕΙΝΝΝ''FB','HEMATOLOGY - FBC','ΓΕΝΙΚΗΕΞΕΤΑΣΗΑΙΜΑΤΟΣ - FBC''FR','自由撰稿',''GT','GLUCOSE TOLERANCE TEST','''''''''''''''''''''''' 'ΧΗΜΙΚΗΑΝΑΛΥΣΗΟΥΡΟΛΙΘΟΥ''SE','SEMEN ANALYSIS','ΣΠΕΡΜΟΔΙΑΓΡΑΜΜΑ''SP','SPECIAL PATHOLOGY','SPECIAL
PATHOLOGY''ST','STOL EXAMINATION','ΕΞΕΤΑΣΗΚΟΠΡΑΝΩΝ''SW','SEMEN WASH ','SEMEN WASH''TH','THROMBOPHILIA PANEL','THROMBOPHILIA PANEL''UR','URINE ANALYSIS','ΓΕΝΙΚΗΕΞΕΤΑΣΗΟΥΡΩΝ''WA','WATER CULTURE REPORT','ΑΝΑΛΥΣΗΝΕΡΟΥ''WI' ,'WIDAL','ΑΝΟΣΟΒΙΟΛΟΓΙΑ'