标签 编码问题 下的文章

C#中以UTF-8编码无BOM头保存XML

c#中直接以XmlDocument.Save()接口以UTF-8编码保存的XML文件是包含BOM头的,怎么以无BOM头UTF-8编码保存XML呢?

参考代码如下:

/// <summary>
/// 以UTF-8无BOM编码保存xml至文件。
/// </summary>
/// <param name="savePath">保存至路径</param>
/// <param name="xml"></param>
public static void SaveXmlWithUTF8NotBOM(string savePath, XmlDocument xml)
{
    StreamWriter sw = new StreamWriter(savePath, false, new UTF8Encoding(false));
    xml.Save(sw);
    sw.WriteLine();
    sw.Close();
}

There are inconsistent line endings in the 'xxx' script. Some are Mac OS X (UNIX) and some are Windows.问题解决

在Window上使用Visual Studio编辑Unity3D脚本时常会出现类似如下警告:

警告 1 There are inconsistent line endings in the 'Assets/DubugTest.cs' script. Some are Mac OS X (UNIX) and some are Windows.
This might lead to incorrect line numbers in stacktraces and compiler errors. Many text editors can fix this using Convert Line Endings menu commands. 0 0 解决方案“UnityVS.TestUnityVS”?(1 个项目)

虽然不影响使用,但一堆警告信息着实让人不爽,继续往下看。

用Notepad2的“查看->显示换行编码"查看发现通过Unity3D编辑器创建的脚本文件是以"LF"结尾(Unix平台),MonoDevelop IDE创建的也是以“LF”结尾(Unix平台),而直接用Visual Studio创建的文件是以“CR LF”结尾(Windows平台)。由于换行编码不一致导致报以上警告。

解决办法

- 阅读剩余部分 -