gpt4 book ai didi

unicode - 在 PowerShell 中替换 “smart quotes”

转载 作者:行者123 更新时间:2023-12-02 11:57:35 26 4
gpt4 key购买 nike

我发现自己有点被一个简单的问题难住了。我正在尝试从一堆文本文件中删除花哨的引用。我有以下脚本,我在其中尝试了多种不同的替换方法,但没有结果。

以下示例从 GitHub 下载数据并尝试进行转换。

$srcUrl="https://raw.github.com/gist/1129778/d4d899088ce7da19c12d822a711ab24e457c023f/gistfile1.txt"
$wc = New-Object net.WebClient
$wc.DownloadFile($srcUrl,"foo.txt")
$fancySingleQuotes = "[" + [string]::Join("",[char[]](0x2019, 0x2018)) + "]"

$c = Get-Content "foo.txt"
$c | % { `
$_ = $_.Replace("’","'")
$_ = $_.Replace("`“","`"")
$_.Replace("`”","`"")
} `
| Set-Content "foo2.txt"

这个工作有什么技巧?

最佳答案

这是一个有效的版本:

    $srcUrl="https://raw.github.com/gist/1129778/d4d899088ce7da19c12d822a711ab24e457c023f/gistfile1.txt"
$wc = New-Object net.WebClient
$wc.DownloadFile($srcUrl,"C:\Users\hartez\SO6968270\foo.txt")

$fancySingleQuotes = "[\u2019\u2018]"
$fancyDoubleQuotes = "[\u201C\u201D]"

$c = Get-Content "foo.txt" -Encoding UTF8

$c | % { `
$_ = [regex]::Replace($_, $fancySingleQuotes, "'")
[regex]::Replace($_, $fancyDoubleQuotes, '"')
} `
| Set-Content "foo2.txt"

原因是manojlds' version不适合你的原因是你从 GitHub 获取的文件的编码与正则表达式中的 Unicode 字符不兼容。以 UTF-8 格式读取它可以解决问题。

关于unicode - 在 PowerShell 中替换 “smart quotes”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6968270/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com