(def c -6ren">
gpt4 book ai didi

unicode - 在 Clojure 源代码中使用表情符号文字

转载 作者:行者123 更新时间:2023-12-03 13:58:26 26 4
gpt4 key购买 nike

在启用了 UTF-8 的控制台的 Linux 上:

Clojure 1.6.0
user=> (def c \の)
#'user/c
user=> (str c)
"の"
user=> (def c \🍒)

RuntimeException Unsupported character: \🍒 clojure.lang.Util.runtimeException (Util.java:221)
RuntimeException Unmatched delimiter: ) clojure.lang.Util.runtimeException (Util.java:221)

我希望能不费吹灰之力就拥有一个富含表情符号的 Clojure 应用程序,但看起来我要查找并输入表情符号代码?还是我在这里遗漏了一些明显的东西? 😞

最佳答案

Java 以 UTF-16 表示 Unicode 字符。表情符号字符是“补充字符”,并且具有无法用 16 位表示的代码点。

http://www.oracle.com/technetwork/articles/javase/supplementary-142654.html

本质上,补充字符不是表示为字符,而是表示为整数,并且有特殊的 api 来处理它们。

一种方法是使用 (Character/toChars 128516) - 这将返回一个字符数组,您可以将其转换为要打印的字符串:(apply str (Character/toChars 128516)) .或者,您可以直接使用 (String. (int-array [128516]) 0 1) 从代码点整数数组创建字符串。 .取决于 Java/Clojure 和您的眼球之间的所有各种事情,这可能会或可能不会做您想要的。

格式 api 支持补充字符,所以这可能是最简单的,但是它需要一个 int 所以你需要一个 Actor :(format "Smile! %c" (int 128516)) .

关于unicode - 在 Clojure 源代码中使用表情符号文字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23902953/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com