使用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中输出编码。