PowerShell替换为错误的符号

时间:2017-09-04 13:59:48

标签: powershell csv replace

我正在尝试用£替换CSV中的GBP个字符。

我创建了一个测试CSV(C:\ test \ test1),如下所示:

col1,
£100 Test

我设法编写了以下代码:

Import-Csv C:test\test1.csv |
    ForEach { if($_.ou -match "£") {$_.OU = $_.OU -replace "£","GBP"}; $_} |
    Export-Csv C:\test\test1replaced.csv -NoTypeInformation

我的问题是,在创建的文件中,£符号似乎被?替换而不是GBP。看不出我做错了什么。

2 个答案:

答案 0 :(得分:0)

引用Jeroen Mostert的答案:

替换:

Import-Csv C:test\test1.csv |
ForEach { if($_.ou -match "£") {$_.OU = $_.OU -replace "£","GBP"}; $_} |
Export-Csv C:\test\test1replaced.csv -NoTypeInformation

有了这个:

Import-Csv C:test\test1.csv -Encoding UTF8 |
ForEach { if($_.ou -match "£") {$_.OU = $_.OU -replace "£","GBP"}; $_} |
Export-Csv C:\test\test1replaced.csv -NoTypeInformation

您应该使用 -Encoding Switch并将类型设置为UTF8以完成它。

答案 1 :(得分:0)

非常感谢您的投入。它看起来不像,但它让我得到了我想出的东西:

(get-content C:test\test1.csv).replace('£', 'GBP') | set-content C:\test\test1replaced.csv