【问题标题】:Printing Unicode Characters in Poly/ML在 Poly/ML 中打印 Unicode 字符
【发布时间】:2015-08-11 16:52:00
【问题描述】:

如何在 SML(使用 Poly/ML)中打印小写希腊语 epsilon

我尝试了以下方法:

print "ε"; (* Error-unprintable character found in file *)
print "\u03B5"; (* Error-Conversion exception (Invalid string constant) raised while converting \u03B5 to string *)

这根本不可能吗?当然,实际渲染字符是终端的工作,因此应该可以将原始字符代码打印到标准输出?

【问题讨论】:

    标签: sml polyml


    【解决方案1】:

    Unicode 转义序列\u03B5 对应于 UTF-16。

    您的终端可能运行 UTF-8,其中 ε 为 0xCE 0xB5。以十进制字节输入:

    > print "\206\181\n";
    ε
    

    【讨论】:

    • 谢谢 - 值得注意的是 String.size 函数会将这些字节视为两个单独的字符,因此如果要正确计算字符串的长度,则必须编写自己的函数打印出来的。
    • 我在raw.githubusercontent.com/HOL-Theorem-Prover/HOL/master/src/… 写了一些用于在SML 中处理UTF8 字符串的函数(将.sml 后缀替换为.sig 以查看签名)。
    猜你喜欢
    • 2018-06-22
    • 2013-02-03
    • 2017-12-06
    • 1970-01-01
    • 2017-02-16
    • 2013-11-23
    • 2014-01-23
    相关资源
    最近更新 更多