我得到一个xml文件,我想从ansi转换为UTF-8。最初我的代码工作,因为原始的XML文件没有一个XML声明。但最近,原始XML文件具有以下声明:XML声明和转换
<?xml version="1.0" encoding="WINDOWS-1256"?>
在我的代码我做从ANSI转换为UFT-8,加入另一头:以后我
<?xml version="1.0" encoding="utf-8"?>
所以将新文件通过我的代码转换为utf-8,新声明为:
<?xml version="1.0" encoding="utf-8"?><?xml version="1.0" encoding="WINDOWS-1256"?>
我认为这是无效的。
下面是我的代码:
Encoding utf8 = new UTF8Encoding(false);
Encoding ansi = Encoding.GetEncoding(1256);
System.Threading.Thread.Sleep(2000);
string xml = File.ReadAllText(FileName,ansi);
// XDocument xmlDoc = XDocument.Parse(xml);
// Console.WriteLine("1st");
File.WriteAllText(
FileName,
@"<?xml version=""1.0"" encoding=""utf-8""?>" + xml.ToString(),
utf8
);
if (File.Exists(destinationFile))
File.Delete(destinationFile);
File.Copy(FileName, destinationFile,true);
Console.WriteLine("File Copied" + " " + DateTime.Now.ToString("HH:mm:ss tt")); // for troubleshoooting only
Console.WriteLine("Press \'q\' to quit.");
Console.Write(CrL);
这个走出来的两个声明为乱码阿拉伯文字的输出。我在哪里错了代码。
任何其他解决方案,我可以尝试 – user726720 2013-02-13 14:20:56