XML を UTF16 から UTF8 でエンコードされたファイルに変換する最も簡単な方法は何ですか?
22276 次
3 に答える
16
最も簡単な方法は、ファイルが XML であるかどうかを気にせず、単純に変換することだと思います。
Get-Content file.foo -Encoding Unicode | Set-Content -Encoding UTF8 newfile.foo
これは、XML がない場合にのみ機能します。
<?xml version="1.0" encoding="UTF-16"?>
ライン。
于 2011-01-27T14:37:47.657 に答える
16
これは最適ではないかもしれませんが、うまくいきます。xml をロードしてファイルにプッシュするだけです。ただし、xml ヘッダーは失われているため、再度追加する必要があります。
$files = get-ChildItem "*.xml"
foreach ( $file in $files )
{
[System.Xml.XmlDocument]$doc = new-object System.Xml.XmlDocument;
$doc.set_PreserveWhiteSpace( $true );
$doc.Load( $file );
$root = $doc.get_DocumentElement();
$xml = $root.get_outerXml();
$xml = '<?xml version="1.0" encoding="utf-8"?>' + $xml
$newFile = $file.Name + ".new"
Set-Content -Encoding UTF8 $newFile $xml;
}
于 2009-04-15T05:49:54.553 に答える
9
を使用するこのソリューションを試してくださいXmlWriter
:
$encoding="UTF-8" # most encoding should work
$files = get-ChildItem "*.xml"
foreach ( $file in $files )
{
[xml] $xmlDoc = get-content $file
$xmlDoc.xml = $($xmlDoc.CreateXmlDeclaration("1.0",$encoding,"")).Value
$xmlDoc.save($file.FullName)
}
XMLDocument
の詳細については、を参照してくださいCreateXmlDeclaration
。
于 2012-06-07T13:37:52.550 に答える