convert unicode into character with ruby

时间:2021-10-02 20:19:05

I found a dictionary of Chinese characters in unicode. I'm trying to build a database of Characters out of this dictionary but I don't know how to convert unicode to a character..

我在unicode中找到了一个汉字字典。我正在尝试从这个字典中构建一个Character数据库,但我不知道如何将unicode转换为一个字符..

p "国".unpack("U*").first #this gives the unicode 22269

How can convert 22269 back into the character value which would be the opposite of the line above.

如何将22269转换回与上面一行相反的字符值。

2 个解决方案

#1


12  

[22269].pack('U*') #=> "国" or "\345\233\275"

Edit: Works in 1.8.6+ (verified in 1.8.6, 1.8.7, and 1.9.2). In 1.8.x you get a three-byte string representing the single Unicode character, but using puts on that causes the correct Chinese character to appear in the terminal.

编辑:适用于1.8.6+(在1.8.6,1.8.7和1.9.2中验证)。在1.8.x中,您将获得一个表示单个Unicode字符的三字节字符串,但使用puts会导致正确的中文字符出现在终端中。

#2


12  

Ruby 1.9 :

Ruby 1.9:

p "国".codepoints.first #=> 22269
p 22269.chr('UTF-8') #=> "国"

#1


12  

[22269].pack('U*') #=> "国" or "\345\233\275"

Edit: Works in 1.8.6+ (verified in 1.8.6, 1.8.7, and 1.9.2). In 1.8.x you get a three-byte string representing the single Unicode character, but using puts on that causes the correct Chinese character to appear in the terminal.

编辑:适用于1.8.6+(在1.8.6,1.8.7和1.9.2中验证)。在1.8.x中,您将获得一个表示单个Unicode字符的三字节字符串,但使用puts会导致正确的中文字符出现在终端中。

#2


12  

Ruby 1.9 :

Ruby 1.9:

p "国".codepoints.first #=> 22269
p 22269.chr('UTF-8') #=> "国"