Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Haskell在Windows 10上的PowerShell中输出Utf8字符串_Windows_Powershell_Haskell_Utf 8 - Fatal编程技术网

使用Haskell在Windows 10上的PowerShell中输出Utf8字符串

使用Haskell在Windows 10上的PowerShell中输出Utf8字符串,windows,powershell,haskell,utf-8,Windows,Powershell,Haskell,Utf 8,这是代码 模块库 (someFunc) )在哪里 someFunc::IO() someFunc=putStrLn“你好" 我尝试在Windows 10上的PowerShell中运行该程序 chcp 936 stack run 输出为: ─π║├ Σ╜áσÑ╜ 下面是另一种尝试: chcp 65001 stack run 输出为: ─π║├ Σ╜áσÑ╜ 有什么建议可以让它正常工作吗?chcp在PowerShell内部无法工作,因为.NET执行了缓存 您可以使用等效的在PowerS

这是代码

模块库
(someFunc)
)在哪里
someFunc::IO()
someFunc=putStrLn“你好"
我尝试在Windows 10上的PowerShell中运行该程序

chcp 936
stack run
输出为:

─π║├
你好
下面是另一种尝试:

chcp 65001
stack run
输出为:

─π║├
你好

有什么建议可以让它正常工作吗?

chcp
在PowerShell内部无法工作,因为.NET执行了缓存

您可以使用等效的
在PowerShell中执行如下等效命令
chcp 65001
(更改为UTF-8代码页)作为示例:

[Console]::InputEncoding=[Console]::OutputEncoding=$OutputEncoding=
[System.Text.Utf8Encoding]::new()#无BOM的UTF-8
要按其Windows代码页码(或名称)获取其他编码,请使用

有关背景信息,请参阅。

后者是这样的:
“你好“.encode('utf-8')。decode('cp437')
返回
'╜áσÑ╜'(抱歉,我不说Haskell,以Python为例),前者类似:
“你好“.encode('cp936')。decode('cp437')
返回
”─π║├'。检查
[控制台]::在PowerShell中输出编码。