标题: [问题求助] PowerShell脚本运行时中文乱码问题 [打印本页]
作者: lonron 时间: 2024-6-4 10:02 标题: PowerShell脚本运行时中文乱码问题
- $tests=@(
- 'test1-测试一',
- 'test1-测试一',
- 'test1-测试一'
- )
- $tests
- pause
复制代码
脚本保存为UTF-8编码,chcp 936、65001都试了不能正确显示中文部分,在控制台可以正常显示中文部分。想请问各位老师在不考虑脚本保存编码改变的前提下,该如何修改才可以使其返回值正常显示中文部分?
作者: newswan 时间: 2024-6-4 10:22
带 bom 就没问题
作者: lonron 时间: 2024-6-4 10:25
回复 2# newswan
是的,但是有没有不改变默认保存编码的情况下,单纯在代码中定义的方式?就像批处理在脚本开头写上chcp 65001就很好的解决这个问题了。
作者: newswan 时间: 2024-6-4 11:02
回复 3# lonron
网上的方法好像都无效
这个方法没试过
Beta 版: 使用 Unicode UTF-8 提供全球语言支持
作者: lonron 时间: 2024-6-4 11:32
回复 4# newswan
意思是更新到pwsh最新版?如果非要改保存编码的话,ANSI和UTF-8 BOM哪个容错会好点?(原脚本只会在中文系统环境但涉及多人不同设备场景下使用)
作者: newswan 时间: 2024-6-4 12:38
回复 5# lonron
不需要新版,主要是 ms 白痴多,随便用 bom 就行
网上的方法,改注册表的方法也没试过,只试过命令的方式。
https://learn.microsoft.com/zh-cn/powershell/module/microsoft.powershell.core/about/about_character_encoding?view=powershell-7.4
作者: Five66 时间: 2024-6-4 21:22
本帖最后由 Five66 于 2024-6-4 21:28 编辑
windows的编码很乱的
系统本身就分ansi和unicode , 而程序又分无bom utf8和有bom utf8
自带的powershell默认用的是ansi (简体中文环境gbk), 内部是unicode , 只认识有bom的ut8 , 但是cmd代码页65001却是以无bom的utf8工作的
建议代码全弄成ascii字符 , 中文换成转义序列
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |