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

PowerShell中如何用Unicode字符批量替换文件中的字符串

在PowerShell中批量替换文件字符串为Unicode国旗字符

问题背景

我需要在PowerShell里批量替换文件中的国家名称为对应的Unicode国旗字符,比如把"Ireland"换成🇮🇪(U+1F1EE U+1F1EA),"UK"换成🇬🇧(U+1F1EC U+1F1E7)。我已经掌握普通字符串替换的写法,但不清楚如何用Unicode字符完成替换。

原有替换代码示例:

$PSDefaultParameterValues = @{'Out-File:Encoding' = 'utf8'}
$fileContent = Get-Content "D:\PS\comp.txt"
$updatedContent = $fileContent -replace 'EU','EU-01' -replace 'AP','AP-01'
$updatedContent | Set-Content "D:\PS\comp.txt"

需要修改的目标替换逻辑:

$updatedContent = $fileContent -replace 'Ireland','IE' -replace 'UK','GB'

要将上述代码中的"IE""GB"替换为对应的Unicode国旗字符。


解决方案

在PowerShell中可以通过两种方式使用Unicode国旗字符完成替换,以下是具体实现:

方式1:直接使用国旗字符字面量

直接将国旗字符(如🇮🇪、🇬🇧)写入替换字符串位置即可,注意脚本文件需保存为UTF-8编码避免字符乱码:

$PSDefaultParameterValues = @{'Out-File:Encoding' = 'utf8'}
# 使用-Raw参数读取整个文件,保留原有换行格式
$fileContent = Get-Content "D:\PS\comp.txt" -Raw
$updatedContent = $fileContent -replace 'Ireland','🇮🇪' -replace 'UK','🇬🇧'
# 写入时指定UTF-8编码,确保Unicode字符正确保存
$updatedContent | Set-Content "D:\PS\comp.txt" -Encoding utf8

方式2:使用Unicode转义序列

如果不方便直接输入国旗字符,可通过PowerShell的Unicode转义语法定义字符:

$PSDefaultParameterValues = @{'Out-File:Encoding' = 'utf8'}
$fileContent = Get-Content "D:\PS\comp.txt" -Raw
# 用`u{XXXX}`转义序列定义国旗字符
$irelandFlag = "`u{1F1EE}`u{1F1EA}"  # 对应🇮🇪
$ukFlag = "`u{1F1EC}`u{1F1E7}"      # 对应🇬🇧
$updatedContent = $fileContent -replace 'Ireland',$irelandFlag -replace 'UK',$ukFlag
$updatedContent | Set-Content "D:\PS\comp.txt" -Encoding utf8

关键注意事项

  • 编码必须为UTF-8:无论读取还是写入文件,都要确保使用UTF-8编码,否则Unicode国旗字符会出现乱码。
  • 使用-Raw参数:默认Get-Content按行读取文件,拼接时可能改变原有换行格式,-Raw参数可一次性读取整个文件,避免此类问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 05:39:52