將 UTF-8 轉換為 Unicode 后在輸出檔案中獲取此行
<?xml version="1.0" encoding="bigEndianUnicode"?>
但我需要在 xml 中的以下行
<?xml version="1.0" encoding="UTF-16"?>
uj5u.com熱心網友回復:
假設您正在使用[xml]型別,您可以按如下方式設定 XML 檔案的編碼:
[xml] $xmlData = '<example>XML</example>'
$fileName = 'C:\test.xml'
$settings = New-Object System.Xml.XmlWriterSettings
# Set encoding to UTF-16
$settings.Encoding = [System.Text.Encoding]::Unicode
$xmlWriter = [System.Xml.XmlWriter]::Create($fileName, $settings)
$xmlData.Save($xmlWriter)
$xmlWriter.Close()
uj5u.com熱心網友回復:
Giorgi Chakhidze 的有用回答顯示了一種基于XML API的正確方法,可以生成具有給定編碼的 XML 檔案,該編碼也反映在輸出檔案的 XML 宣告中。
但是,聽起來您已經使用純文本處理將檔案從 UTF-8轉碼為“Unicode”(UTF-16LE),現在必須調整這些檔案的 XML 宣告以匹配新編碼。
下面顯示了單個file.xml檔案的解決方案(它假定file.xml具有“Unicode”(UTF-16LE)BOM,以便Get-Content正確解釋其編碼):
(Get-Content -Raw -LiteralPath file.xml) -replace '(?<=^. encoding=")[^"] ', 'utf-16' |
Set-Content -NoNewLine -Encoding Unicode -LiteralPath file.xml
但是,目前還不清楚您的從 UTF-8 轉碼的檔案encoding="bigEndianUnicode"在它們的 XML 宣告中是如何結束的。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/391147.html
上一篇:使用來自輸入的標簽作為XSLTXML輸出中的封閉標簽
下一篇:靈活的遞回XML模式
