1

我似乎无法弄清楚如何在 clojure 中获取字符的 UTF-8 十六进制代码。我最接近相关结果的是尝试(int \Д),但它返回1044而不是0414or D094。我会用什么来获得后一个结果?

提前致谢!

编辑:我没有说清楚,但我需要 UTF-8 十六进制字符串,所以我需要D094而不是0414. 我要将标签打印机的十六进制代码转换D094_D0_94(我知道这有点恶心 - 我自己并不完全喜欢它:P)

4

3 回答 3

5

我将加入:

user=> (format "%04x" (int \Д))
"0414"
于 2012-10-24T02:34:15.157 回答
4

如果您只是在组成字节之后:

(-> (char 1044) str (.getBytes "UTF-8"))

如果您想要字符串化代码,只需将每个字节转换为其十六进制表示并将它们连接起来:

(defn stringify-bytes [bytes] (->> bytes (map (partial format "%02x")) (apply str)))
于 2012-10-24T01:43:42.527 回答
2
user> (Integer/toHexString (int \Д))
"414"

是一种选择。虽然没有前导零。

于 2012-10-24T02:31:32.333 回答