通常,unicode字符可以表示如下:
\u0905 => अ
我想知道如何编写一个可以输出相同内容的函数:
(unicode "0905") => अ
或
(unicode 905) => अ
我希望能够构造一个字节数组表示。即:
(seq (.getBytes "\u11035"))
=> (-31 -124 -125 53)
然后使用字节表示来构造字符。
答案 0 :(得分:1)
(defmulti unicode class)
(defmethod unicode java.lang.String [s]
(read-string (str "\\u" s)))
(defmethod unicode java.lang.Long [l]
(read-string (str "\\u" (format "%04d" l))))
(unicode "0905")
;;=>\अ
(unicode 905)
;;=>\अ