1
我通常在Linux上開發Haskell程序,然後在Windows上構建並測試它們的一些 。說,我有一些控制檯程序輸出Unicode 符號。特別是,它發生在輸出版權符號 '©',像這樣 :Windows控制檯似乎不喜歡Unicode
Copyright © 2015 Boo
它可以在Arch Linux的罰款,但在Windows 7中打印類似:
Copyright program_name.EXE: <stdout>: commitAndReleaseBuffer: invalid
argument (invalid character)
我不確定,但我認爲在Windows控制檯中輸出unicode符號 應該是可行的,沒有任何額外的魔力。
這裏有兩個問題:
- 它是Windows的或Haskell的錯嗎?
- 我該如何解決?
P.S.已使用MinGHC,因爲它具有 GHC 7.10。
你需要調用['WriteConsoleW'(https://msdn.microsoft.com/en-us/library/ms687401)(注意「W 「在寬字符API上的後綴),但是這在Haskell中完成。 – eryksun
@eryksun,我天真地認爲高級別Haskell庫可以爲我處理... – Mark
在運行程序之前,請嘗試運行'chcp 65001'。 – chi