找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 14011|回复: 6

[问题求助] PowerShell脚本运行时中文乱码问题

[复制链接]
发表于 2024-6-4 10:02:04 | 显示全部楼层 |阅读模式
  1. $tests=@(
  2. 'test1-测试一',
  3. 'test1-测试一',
  4. 'test1-测试一'
  5. )
  6. $tests
  7. pause
复制代码
脚本保存为UTF-8编码,chcp 936、65001都试了不能正确显示中文部分,在控制台可以正常显示中文部分。想请问各位老师在不考虑脚本保存编码改变的前提下,该如何修改才可以使其返回值正常显示中文部分?
发表于 2024-6-4 10:22:59 | 显示全部楼层
带 bom 就没问题
 楼主| 发表于 2024-6-4 10:25:31 | 显示全部楼层
回复 2# newswan


    是的,但是有没有不改变默认保存编码的情况下,单纯在代码中定义的方式?就像批处理在脚本开头写上chcp 65001就很好的解决这个问题了。
发表于 2024-6-4 11:02:24 | 显示全部楼层
回复 3# lonron

网上的方法好像都无效
这个方法没试过
Beta 版: 使用 Unicode UTF-8 提供全球语言支持
 楼主| 发表于 2024-6-4 11:32:39 | 显示全部楼层
回复 4# newswan


    意思是更新到pwsh最新版?如果非要改保存编码的话,ANSI和UTF-8 BOM哪个容错会好点?(原脚本只会在中文系统环境但涉及多人不同设备场景下使用)
发表于 2024-6-4 12:38:42 | 显示全部楼层
回复 5# lonron

不需要新版,主要是 ms 白痴多,随便用 bom 就行
网上的方法,改注册表的方法也没试过,只试过命令的方式。
https://learn.microsoft.com/zh-cn/powershell/module/microsoft.powershell.core/about/about_character_encoding?view=powershell-7.4
发表于 2024-6-4 21:22:53 | 显示全部楼层
本帖最后由 Five66 于 2024-6-4 21:28 编辑

windows的编码很乱的
系统本身就分ansi和unicode , 而程序又分无bom utf8和有bom utf8

自带的powershell默认用的是ansi (简体中文环境gbk), 内部是unicode , 只认识有bom的ut8 , 但是cmd代码页65001却是以无bom的utf8工作的

建议代码全弄成ascii字符 , 中文换成转义序列
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-17 05:09 , Processed in 0.010770 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表