ファイルシステムウォッチャーを使用してファイルのエンコーディングを選択して変換しています。ファイルは宛先にコピーされますが、変換は行われません。以前は次のコードを使用していました。
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);
しかし、これは現在機能していません。これは、取得しているxmlファイルに次のヘッダーが含まれているためです。
<?xml version="1.0" encoding="WINDOWS-1256"?>
私は以前に以下のコードを提案されました:
var doc = new XmlDocument();
doc.Load(FileName);
XmlWriterSettings settings = new XmlWriterSettings { Encoding = Encoding.UTF8, Indent=true };
using (var fileStream = File.OpenWrite(destinationFile))
{
using (var writer = XmlWriter.Create(fileStream, settings))
{
doc.Save(writer);
}
}
しかし、これは変換をまったく行っていません。目的地。ファイルはまだansiです。utf8への変換は行っていません。私はここで何か間違ったことをしていますか