Elixir:将整数转换为Unicode字符

rei*_*eer 4 string unicode elixir

我想遍历Unicode给定的Elixir中的汉字集。我阅读了说明文件,并说可以使用“?” 运算符以将代码点获取为整数,然后可以对其进行递增。现在我只需要做相反的事情,从代码点到整数。有没有简单的方法可以做到这一点?我没找到。例如,在Python中,您可以

>>> chr(ord("?") + 1)
    '?'
Run Code Online (Sandbox Code Playgroud)

Dog*_*ert 5

Elixir中没有字符数据类型,但是要将代码点转换为包含该字符的字符串(编码为UTF-8),可以使用<<x::utf8>>List.to_string([x])

iex(1)> x = ?? + 1
19969
iex(2)> <<x::utf8>>
"?"
iex(3)> List.to_string([x])
"?"
Run Code Online (Sandbox Code Playgroud)

  • @DavidMagalhães 使用模式匹配:`&lt;&lt;x::utf8&gt;&gt; = "π"`。“x”现在将是“960”。 (4认同)