You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Haskell中如何将Unicode值–转换为对应字符?

在Haskell中获取'–'字符的正确方式

首先要明确:你要的'–'(短破折号,en dash)对应的Unicode码点是U+2013,十进制值为8211,你之前用的2013对应的是U+07DD(字符'ߝ'),这是码点记错导致的错误。

在Haskell里可以通过以下几种方式正确获取该字符:

  • 直接写入字符:如果你的源码文件采用UTF-8编码(GHC默认支持),可以直接在字符串或字符字面量中使用该字符:

    -- 输出字符串形式的短破折号
    putStrLn "–"
    -- 输出字符形式的短破折号
    print '–'
    
  • 使用十进制转义序列:利用正确的十进制码点8211:

    putStrLn "\8211"
    
  • 使用十六进制转义序列:对应U+2013的十六进制写法:

    putStrLn "\x2013"
    

注意:Haskell不支持Python式的\uXXXX转义格式,这也是你尝试时出现"lexical error in string/character literal at character 'u'"错误的原因,它的Unicode转义语法是\xXXXX(十六进制,最多4位)或\XXXXXX(十进制,最多6位)。

内容的提问来源于stack exchange,提问作者noatbfgtxa

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 21:05:24