【问题标题】:How to get encoding of xml file?如何获取xml文件的编码?
【发布时间】:2018-07-05 12:59:20
【问题描述】:

如何使用c#获取xml文件的编码信息?

<?xml version="1.0" encoding="iso-8859-1"?>

<?xml version="1.0" encoding="Windows-1252"?>

我知道如何读入元素和属性... 但是我必须在我的反序列化方法中通过案例来定义: 根据 xml 的编码类型,我必须为 StreamReader 使用 encoding_windows 或 encoding_utf

var encoding_windows = Encoding.GetEncoding("Windows-1252");
var encoding_utf = Encoding.GetEncoding("utf-8");
var sr = new StreamReader(current_file, encoding_windows, true);

【问题讨论】:

  • 这是您需要知道的,因为您想以与读取文件相同的编码写入文件,还是有其他原因您想知道?
  • 我需要知道反序列化方法的编码
  • 我认为你错了。编码类型是反序列化库关于信息如何编码的提示。因此,您不需要知道该信息。这些字段都应该在反序列化后以 .net 术语(int、string 等)呈现给您。它们是如何被解码的应该是无关紧要的(假设你使用的是一个好的 .net 库)。

标签: c# xml visual-studio serialization encoding


【解决方案1】:

当您使用 StreamReader 时,试试这个:

var sr = new StreamReader(current_file);

var encodingCurrentFile = sr.CurrentEncoding.EncodingName;

Console.WriteLine(encodingCurrentFile);

encodingCurrentFile 是您当前的编码名称。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-01-25
    • 1970-01-01
    • 1970-01-01
    • 2012-08-13
    • 1970-01-01
    • 2018-08-09
    • 1970-01-01
    相关资源
    最近更新 更多