XML跳过utf-8的BOM

代码内容

GameData GetDataWithoutBOM(string fileName)
    {
        GameData data = new GameData();
        Stream stream = new FileStream(fileName + @"\data.json", FileMode.Open, FileAccess.Read, FileShare.None);
        StreamReader streamReader = new StreamReader(stream, true);//true跳过bom

        XmlSerializer xmlSerializer = new XmlSerializer(data.GetType());
        data = xmlSerializer.Deserialize(streamReader) as GameData;
        streamReader.Close();
        stream.Close();

        return data;
    }

fliename就是我们存放的文件路径,文件是json格式的,这里通过流式读取来跳过bom,并且通过序列化获取数据,关于GameData这个类是我的自定义的数据存储类型。

/// <summary>
/// 存储数据类型
/// </summary>
[System.Serializable]
public class GameData
{
    public int playerIntegration;
    public int computerOneIntegration;
    public int computerTwoIntegration;
}

我的data.json文件中的内容如下:

<?xml version="1.0" encoding="utf-8"?>
<GameData xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <playerIntegration>700</playerIntegration>
  <computerOneIntegration>1200</computerOneIntegration>
  <computerTwoIntegration>700</computerTwoIntegration>
</GameData>

以上方法是用代码来去除bom,其实用notepad++来重新编辑保存是更简单的,亲测可行。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

瓜皮肖

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值