首页 > 代码库 > 如何让PowerShell显示中文不乱码

如何让PowerShell显示中文不乱码

故障描述:

这两天有个部门做了个Survey用来调查一些信息,由于对最后的结果报表有些特殊要求,不得不决定弃用SharePoint Survey自带的Export to spreadsheet功能,改用PowerShell导出结果。

过程中碰到个小麻烦,就是Survey结果中的中文字符不能正常显示,打印出来的都是问号。。

 

解决方法:

其实嘛一看就知道是encoding的问题,英语为默认语言的环境里,PowerShell默认的Encoding是AscII

最简单的方法就是改用PowerShell ISE,它可以显示非英语字符。在操作SharePoint数据的时候只要在启动ISE的时候运行一下下面的语句就可以,相比于Management Console方便很多。

Add-PSSnapin Microsoft.SharePoint.PowerShell

 

另外一个解决方法是把Encoding改为UTF8,运行下面的语句就可以了。

$OutputEncoding = New-Object -typename System.Text.UTF8Encoding