首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用PowerShell将xml从UTF-16转换为UTF-8

使用PowerShell将xml从UTF-16转换为UTF-8
EN

Stack Overflow用户
提问于 2009-04-15 05:45:07
回答 3查看 22.3K关注 0票数 19

将XML从UTF16转换为UTF8编码文件的最简单方法是什么?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2009-04-15 05:49:55

这可能不是最理想的,但它是有效的。只需加载xml并将其推送回一个文件。但是,xml标题丢失了,因此必须重新添加。

代码语言:javascript
复制
$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;
}
票数 16
EN

Stack Overflow用户

发布于 2011-01-27 22:37:48

好吧,我想最简单的方法就是不关心文件是否是XML,只需转换:

代码语言:javascript
复制
Get-Content file.foo -Encoding Unicode | Set-Content -Encoding UTF8 newfile.foo

这仅适用于没有

代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-16"?>

线路。

票数 16
EN

Stack Overflow用户

发布于 2012-06-07 21:37:53

尝试使用XmlWriter的解决方案

代码语言:javascript
复制
$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)      
}

有关CreateXmlDeclaration的更多解释,您可能需要查看XMLDocument

票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/750449

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档