Windows上的GHCi:如何从控制台读取Unicode输入?

Not*_* ID 9 windows powershell haskell cmd

如何使以下代码在命令提示符/ LameShell中使用Unicode(CJK)?

main = getLine >>= putStrLn
Run Code Online (Sandbox Code Playgroud)

(Windows 8.1,Haskell Platform 2014)

不,chcp 65001不行,也不行chcp 10000.

不,我不想将英语(美国)的系统本地(控制面板/时钟,语言,地区/语言/更改日期,时间或数字格式/管理)更改为其他人.

是的,我已将字体设置为Lucida Console.

我尝试过ConEmu/Cmder/Console2,他们都说"异常:: hGetLine:文件结束".我也试过Emacs,(我使用Vim),它没有崩溃,但无论我输入什么,我总是得到空格.

补丁GHC并重新编译它是可以接受的,如果没有其他方法.

任何的想法?

谢谢.

The*_*le1 1

PowerShell 本身支持 UTF。假设我main = getLine >>= putStrLn正确理解你的例子():

$var = Read-Host
Write "$var"
Run Code Online (Sandbox Code Playgroud)

或者简单地:

Read-Host
Run Code Online (Sandbox Code Playgroud)