系统相关
首页 > 系统相关> > 解决在PowerShell中运行Haskell程序的乱码问题

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

作者:互联网

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

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

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

标签:编码,UTF,System,Powershell,乱码,Haskell,Console,PowerShell
来源: https://www.cnblogs.com/HeYanjie/p/14360120.html