当前位置:  开发笔记 > 编程语言 > 正文

F# - 卡不适合在控制台中显示

如何解决《F#-卡不适合在控制台中显示》经验,为你挑选了0个好方法。

我正在使用f#制作基于控制台的纸牌游戏,而我正在努力使用unicode字符显示卡片套装.映射suit-to-char表示如下函数:

let suitSymbol = function
    | Spades   -> "\u2660"
    | Clubs    -> "\u2663"
    | Diamonds -> "\u2666"
    | Hearts   -> "\u2665"

使用显示

printf "%s" <| suitSymbol Spades

在fsi中工作正常:

FSI
但是当使用fsc.exe编译时,它会显示不同的(不适合)字符:

cmd提示符

我试过改变源文件的编码但没有效果.有没有办法让它在编译时起作用?

编辑(30.01.2017):斯图亚特的anwser是正确的,但我无法克服事实,它需要进入

chcp 65001

每次我想运行我的游戏.

在研究了在F#中引用DLL的方法之后,我提出了以下解决方案:

module Kernel =
    []
    extern bool SetConsoleOutputCP(uint32 wCodePageID)

在我添加的主要功能代码中

[]
let main args =
    Kernel.SetConsoleOutputCP 65001u |> ignore

它仅修改此进程的代码页,因此其他应用程序将正常运行.

推荐阅读
手机用户2402851335
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有