powershell - PS1 文件的正确编码是什么

标签 powershell character-encoding

我正在对一系列 PS1 和 PSM1 文件进行一些文本流处理,我遇到了一些智能引号和长破折号的问题(从不,从不,从 MS Scripting Guy 博客中剪切和粘贴代码)。我认为问题出在编码上,所以我看了看,我有 ASCII 和 UTF8 的文件,但当然,我的时髦文本都有问题。所以我做了一些替换,而且我已经开始工作了,但我想知道我是否不应该对一种编码进行标准化,如果是这样,是哪一种?

最佳答案

不是对您问题的直接回答,但您可能会发现它仍然有用,我有一个我编写的工具来处理 PS 和 SQL 脚本,但很快发现人们从他们的电子邮件中粘贴了很多东西。我必须实现它来纠正这一切,它应该得到一切:

if ($code.IndexOf([Char]0x2013) -gt -1) { $code = $code.Replace(([Char]0x2013).ToString(), "--") }   # en dash
if ($code.IndexOf([Char]0x2014) -gt -1) { $code = $code.Replace(([Char]0x2014).ToString(), "-") }    # em dash
if ($code.IndexOf([Char]0x2015) -gt -1) { $code = $code.Replace(([Char]0x2015).ToString(), "-") }    # horizontal bar
if ($code.IndexOf([Char]0x2017) -gt -1) { $code = $code.Replace(([Char]0x2017).ToString(), "_") }    # double low line
if ($code.IndexOf([Char]0x2018) -gt -1) { $code = $code.Replace(([Char]0x2018).ToString(), "`'") }   # left single quotation mark
if ($code.IndexOf([Char]0x2019) -gt -1) { $code = $code.Replace(([Char]0x2019).ToString(), "`'") }   # right single quotation mark
if ($code.IndexOf([Char]0x201a) -gt -1) { $code = $code.Replace(([Char]0x201a).ToString(), ",") }    # single low-9 quotation mark
if ($code.IndexOf([Char]0x201b) -gt -1) { $code = $code.Replace(([Char]0x201b).ToString(), "`'") }   # single high-reversed-9 quotation mark
if ($code.IndexOf([Char]0x201c) -gt -1) { $code = $code.Replace(([Char]0x201c).ToString(), "`"") }   # left double quotation mark
if ($code.IndexOf([Char]0x201d) -gt -1) { $code = $code.Replace(([Char]0x201d).ToString(), "`"") }   # right double quotation mark
if ($code.IndexOf([Char]0x201e) -gt -1) { $code = $code.Replace(([Char]0x201e).ToString(), "`"") }   # double low-9 quotation mark
if ($code.IndexOf([Char]0x2026) -gt -1) { $code = $code.Replace(([Char]0x2026).ToString(), "...") }  # horizontal ellipsis
if ($code.IndexOf([Char]0x2032) -gt -1) { $code = $code.Replace(([Char]0x2032).ToString(), "`"") }   # prime
if ($code.IndexOf([Char]0x2033) -gt -1) { $code = $code.Replace(([Char]0x2033).ToString(), "`"") }   # double prime
if ($code.IndexOf([Char]0x0009) -gt -1) { $code = $code.Replace(([Char]0x0009).ToString(), "    ") } # tab

关于powershell - PS1 文件的正确编码是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41939799/

相关文章:

powershell - 如何在不截断值的情况下使用 Format-Table?

c# - 远程运行 powershell 命令时出错

regex - Powershell Parsing Help - 如何将文件夹名称列表输出到文本文件中

java - 使用java编码的json字符串无法使用php解码

java - java中如何操作unicode字符

windows - 如何使用 powershell 在本地用户上设置 "Environment"> "Start the following program at logon"属性?

尝试使用 "The specified network resource or device is no longer available"读取证书存储时,PowerShell 失败

c# - 什么解码了我的编码哈希符号 (%23)?

php - 带有ajax响应的奇怪编码

mysql - UTF-8 MySQL 和字符集