解决在PowerShell中运行Haskell程序的乱码问题

我在Haskell中打印中文,并在Powershell中运行程序,结果碰到了编码问题。我根据网上的资料,使用chcp 65001切换编码为UTF-8,但是结果依旧是乱码。于是我上*提了个问题,很快就得到了热心程序员的回复。原来chcp在Powershell内部是没作用的。这主要是由于.NET的缓存。所以我们可以这样操作,在Powershell中输入如下的命令:

[Console]::InputEncoding = [Console]::OutputEncoding = $OutputEncoding = 
  [System.Text.Utf8Encoding]::new()  # BOM-less UTF-8

这样就可以解决问题了,把Powershell内部的编码也切换为了UTF-8。如果要根据编码名称获得编码对象,可以使用 [System.Text.Encoding]::GetEncoding() 函数。

上一篇:powershell 查看WMI信息和几个WMI类示例


下一篇:Windows 环境下,Kafka的启动步骤