2
我有一個XML配置文件,我正在使用PowerShell進行修改,當我使用Xml.Save保存文件時,它會更改編碼類型。如何使用Xml.Save強制或指定編碼類型?
當我打開原始文件時,我試圖在Notepad ++中進行編輯,編碼類型被列爲「無BOM的UTF-8」。當我用Notepad ++打開文件後,使用Xml進行編輯。編碼類型簡單地列爲「UTF-8」。這會導致使用此文件的程序錯誤地指出它無法解析配置屬性。
如果我在Notepad ++中打開EDITED文件,將編碼類型更改爲「沒有BOM的UTF-8」,並保存該文件。該程序然後將運行沒有錯誤。
如何在保存文件時強制和/或指定Xml.Save
使用「沒有BOM的UTF-8」編碼類型?
我已經嘗試了不同的鑄造和保存文件的方式,但Xml.Save
似乎默認爲「UTF-8」導入類型。
$xml = New-Object -TypeName XML
$xml.Load($file)
$xml.configuration.config.option = $newValue
$xml.Save($file)
有趣!我發現了一個基本上使用相同方法的類似解決方案。它可以工作,但有趣的部分是在我保存文件並在Notepad ++中打開它後,它將文件列爲具有「ANSI」編碼。就像你說的我希望有更優雅的東西,但這確實有用,所以謝謝你! –
@ user1770228當我回答你的[原始問題](http://stackoverflow.com/q/30263775/1630171)時,我想出了相同的解決方案。我在Notepad ++的測試中打開了輸出文件,並顯示「UTF-8 without BOM」作爲編碼。 –