Cas*_*per 34
怎么样:
puts ["2B71F".hex].pack("U")
Run Code Online (Sandbox Code Playgroud)
编辑
在Ruby 1.9中,您甚至可以这样做:
puts "\u{2B71F}"
Run Code Online (Sandbox Code Playgroud)
即\u{}
转义序列可用于解码Unicode码点.
Oca*_*res 19
类似的unicode符号U+2B71F
被称为a codepoint
.
unicode系统codepoint
为众多世界语言,科学符号,货币等中的每个字符定义唯一.这个字符集正在稳步增长.
例如,U+221E
是无穷大.
的codepoints
是十六进制数.每个字符始终只有一个数字.
有许多方法可以在内存中进行排列.这被称为encoding
常见的UTF-8
和UTF-16
.转换来回定义明确.
在这里,您很可能正在寻找将unicode转换codepoint
为UTF-8
字符的方法.
codepoint = "U+2B71F"
Run Code Online (Sandbox Code Playgroud)
您需要提取后面的十六进制部分U+
并获得2B71F
.这将是第一次集体捕获.看到这个.
codepoint.to_s =~ /U\+([0-9a-fA-F]{4,5}|10[0-9a-fA-F]{4})$/
Run Code Online (Sandbox Code Playgroud)
而你是UTF-8角色将是:
utf_8_character = [$1.hex].pack("U")
Run Code Online (Sandbox Code Playgroud)
参考文献: