Windows PowerShell 输出重定向 (“>”) 文件编码默认为UTF-16(LE)问题
问题描述:这两天在使用shp2pgsql时发现Windows PowerShell(为使行文方便,以下使用WPS替代Windows PowerShell,下不赘述)对于文件的输出重定向默认选择”UTF-16 (LE)”(微软称之为Unicode编码),而实际需要文件输出格式为”UTF-8”。
注意到此时本机上的msys2和bash都可将同一条语句的执行结果输出重定向为”UTF-8”编码文件,因此要从WPS本身着手解决这一问题。
在正式开始描述解决方案前,给出本机的相关环境:
- 1.Windows 版本:10.0.16299.248
- 2.WPS 版本:5.1.16299.248
注:WPS中查看WPS版本号的方式是键入:
$PSVersionTable
如果说你想一劳永逸的解决这个问题,那么最好是直接设置WPS的默认输出文件的编码格式(这是由于在版本号高于5.0的WPS中,输出重定向符号”>”实际上是操作“Out-File”的别名),则应在WPS中执行:
$PSDefaultParameterValues['Out-File