$OutputEncoding=[System.Text.UTF8Encoding]::new($false)# With no BOM [Console]::InputEncoding=[System.Text.UTF8Encoding]::new($false) [Console]::OutputEncoding=[System.Text.UTF8Encoding]::new($false) $PSDefaultParameterValues['*:Encoding']='utf8'
上面两个结合使用也不行的。
据称,Core版默认使用UTF-8不带BOM的版本,但是没有任何一个Windows版本自带Core版,都需要自行安装。所以这里就很搞笑了,微软做了个非常强大的shell,名字也很强大,但是普通用户执行首先就要调整执行策略才能执行脚本。这还不算啥,后来优化了,更容易开启了。搞笑的是,一个UTF-8编码迟迟不能好好支持,就好像Win32 C API那UTF-16残缺的Unicode美。