微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何使用Xml.Save强制或指定编码类型?

我有一个我使用Power Shell修改XML配置文件,当我使用Xml.Save保存文件时,它会更改编码类型.

当我打开ORIGINAL文件时,我试图在记事本中编辑,编码类型列为“没有BOM的UTF-8”.当我使用Xml.Save编辑后在记事本中打开文件时,编码类型被简单地列为“UTF-8”.这会导致使用此文件的程序错误地说它无法解析为配置属性.

如果我在记事本中打开EDITED文件,请将编码类型更改为“无BOM的UTF-8”,然后保存文件.然后程序将运行而不会出错.

在保存文件时,如何强制和/或指定Xml.Save使用“UTF-8无BOM”编码类型?

我尝试了不同的方法来转换和保存文件,但Xml.Save似乎认为“UTF-8”enconding类型.

$xml = New-Object -TypeName XML
$xml.Load($file)
$xml.configuration.config.option = $newValue
$xml.Save($file)

解决方法

这似乎照顾它.当然可以有更优雅的方式……

$xml = New-Object -TypeName XML
$xml.Load($file)
$xml.configuration.config.option = $newValue

$utf8WithoutBom = New-Object System.Text.UTF8Encoding($false)
$sw = New-Object System.IO.StreamWriter($file,$false,$utf8WithoutBom)

$xml.Save( $sw )
$sw.Close()

here,herehere收集的详细信息.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。