You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PowerShell如何转义单双弯引号 解决Acrobat生成HTML字符替换问题

问题解决方案

你遇到的问题本质是PowerShell脚本文件编码解析不一致导致的:

  • 交互式会话/调试模式下输入的弯引号字面量会被控制台正确识别为对应Unicode字符
  • 直接运行.ps1脚本时,若文件未采用带BOM的UTF-8格式存储,PowerShell(尤其是5.1及更早版本)会错误解析脚本中的弯引号字面量,导致匹配失败

最优解决方案(完全规避编码问题)

直接通过Unicode码点引用弯引号字符,无需依赖脚本编码解析:

# 左双弯引号 U+201C → “
$html = $html.Replace([char]0x201C, '“')
# 右双弯引号 U+201D → ”
$html = $html.Replace([char]0x201D, '”')
# 左单弯引号 U+2018 → ‘
$html = $html.Replace([char]0x2018, '‘')
# 右单弯引号 U+2019 → ’
$html = $html.Replace([char]0x2019, '’')

可选解决方案(使用字面量写法)

如果你要保留脚本中的弯引号字面量写法,将你的.ps1脚本文件以UTF-8带BOM的编码格式重新保存即可,该格式是旧版PowerShell识别脚本内Unicode字符的标准兼容格式。

验证方法

你可以在脚本中加入下行代码确认字符解析是否正常,正常情况下输出应为8220(0x201C的十进制值):

Write-Host ([int][char]"“")

如果输出数值不符,说明脚本内的弯引号被错误解析,建议优先使用Unicode码点写法。

内容的提问来源于stack exchange,提问作者CXL

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 09:54:04