gpt4 book ai didi

c# - 打开 XML 文件并将其转换为 UTF-8

转载 作者:数据小太阳 更新时间:2023-10-29 02:27:03 29 4
gpt4 key购买 nike

我正在尝试打开一个 xml 文件 (ansi) 并将其转换并保存为 UTF-8。

这是我的代码:

using System;
using System.IO;
using System.Text;
using System.Xml;



class Test
{

public static void Main()
{
string path = @"C:\test\test.xml";
string path_new = @"C:\test\test_new.xml";

try
{
XmlTextReader reader = new XmlTextReader(path);

XmlWriterSettings settings = new XmlWriterSettings();
settings.Encoding = new UTF8Encoding(false);
using (var writer = XmlWriter.Create(path_new, settings))
{
reader.Save(writer);
}





}
catch (Exception e)
{
Console.WriteLine("The process failed: {0}", e.ToString());
}
}

}

我收到错误“System.Xml.XmlTextReader”不包含“保存”的定义,并且找不到接受“System.Xml.XmlTextReader”类型的第一个参数的扩展方法“保存”(是您缺少 using 指令或程序集引用?)

我错过了什么类(class)?我的代码是否适合完成这项工作

编辑:

好的,这是另一个给我异常(exception)的代码:

using System;
using System.IO;
using System.Text;
using System.Xml;



class Test
{

public static void Main()
{
string path = @"C:\project\rdsinfo.xml";
//string path_new = @"C:\project\rdsinfo_new.xml";

try
{
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(path);



}
catch (Exception e)
{
Console.WriteLine("The process failed: {0}", e.ToString());
}
}
}

它给了我一个异常,给定编码中的无效字符。

最佳答案

很简单:

string path = @"C:\test\test.xml";
string path_new = @"C:\test\test_new.xml";

Encoding utf8 = new UTF8Encoding(false);
Encoding ansi = Encoding.GetEncoding(1252);

string xml = File.ReadAllText(path, ansi);

XDocument xmlDoc = XDocument.Parse(xml);

File.WriteAllText(
path_new,
@"<?xml version=""1.0"" encoding=""utf-8""?>" + xmlDoc.ToString(),
utf8
);

将 ANSI 编码(示例中的 1252)更改为您的 ANSI 文件所在的编码 - 请参阅 list of encodings .

关于c# - 打开 XML 文件并将其转换为 UTF-8,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14301838/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com