作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
将输出流重定向到文件时,有什么方法可以省略字节顺序标记吗?例如,如果我要获取XML文件的内容并用新值替换字符串,则需要创建新的编码并将新的输出写入类似以下内容的文件:
$newContent = ( Get-Content .\settings.xml ) -replace 'expression', 'newvalue'
$UTF8NoBom = New-Object System.Text.UTF8Encoding( $false )
[System.IO.File]::WriteAllText( '.\settings.xml', $newContent, $UTF8NoBom )
Out-File
,但是将
UTF8
指定为编码仍然包含BOM:
( Get-Content .\settings.xml ) -replace 'expression', 'newvalue' | Out-File -Encoding 'UTF8' .\settings.xml
( Get-Content .\settings.xml ) -replace 'expression, 'newvalue' > settings.xml
Write-FileWithoutBom
这样的功能来接受管道输入和输出路径的方法,在将输出重定向到文件时,有什么方法可以简单地“关闭”编写BOM的方法吗?
最佳答案
>
/ >>
的默认编码,但是如果选择utf8
,您仍然会得到BOM:$PSDefaultParameterValues['Out-File:Encoding'] = 'utf8'
Out-FileUtf8NoBom
。 Out-File
/ >
和Set-Content
),并通过-Encoding
标识符utf8
和utf8BOM
为您提供BOM或无BOM的选择。 关于file - 是否可以使用重定向运算符将输出重定向到文件,而无需在Powershell中写入字节顺序标记?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51847114/
我是一名优秀的程序员,十分优秀!