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

PowerShell中Unicode字符显示异常问题求助

解决PowerShell多语言文件路径显示为问号的问题

嘿,我完全懂你的困扰——明明只是想显示包含阿拉伯语、中文、日语、俄语的文件完整路径,结果PowerShell偏要搞出一堆问号,还让读取输出的脚本也拿不到正确字符,这事儿确实闹心!下面是几个针对性的解决办法:

1. 调整PowerShell的输出编码

PowerShell默认的输出编码可能不兼容全Unicode字符,导致非ASCII字符被替换成问号。你需要设置两个关键的编码参数:

  • 首先设置控制台的输出编码,确保控制台能正确渲染字符:
    [Console]::OutputEncoding = [System.Text.Encoding]::UTF8
    
  • 然后设置PowerShell管道输出的编码,让其他脚本读取时能拿到正确的UTF-8内容:
    $OutputEncoding = [System.Text.Encoding]::UTF8
    

2. 直接输出路径字符串,避免默认格式化

有时候Get-ChildItem的默认输出格式会偷偷处理字符,你可以直接提取完整路径字符串:

Get-ChildItem -Recurse -Path "D:\test" | Select-Object -ExpandProperty FullName

或者用更直观的循环:

Get-ChildItem -Recurse -Path "D:\test" | ForEach-Object { $_.FullName }

3. 确保控制台字体支持多语言字符

如果控制台本身显示就是问号,那可能是字体不支持这些Unicode字符。你可以:

  • 右键PowerShell窗口标题栏 → 选择「属性」→ 切换到「字体」标签
  • 选择支持Unicode的字体,比如Consolas、微软雅黑或者Segoe UI,这些字体能正确显示大多数非英语字符

4. 配合读取脚本的编码设置

如果是其他脚本(比如批处理)读取PowerShell的输出,要确保读取方也用UTF-8编码:

  • 比如在批处理开头加上:
    chcp 65001
    
    这样批处理就能正确识别PowerShell输出的UTF-8字符了

这些步骤应该能解决你遇到的问号问题,先试试调整编码和直接输出路径的方法,大概率能搞定!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 04:06:10