2014-01-13 83 views
3

我想知道是否有JavaScript的fromCharCode函數的Ruby等價物。它所做的是將Unicode值轉換爲字符。fromCharCode等價於Ruby

這裏其返回值的JavaScript中的例子:

String.fromCharCode(72,69,76,76,79) 
#=> HELLO 

是否有在Ruby中的等價?

回答

3

使用Integer#chr

72.chr 
# => "H" 
[72,69,76,76,79].map{|i| i.chr }.join 
# => "HELLO" 
[72,69,76,76,79].map(&:chr).join 
# => "HELLO" 

UPDATE

不帶參數CHR只能處理8位ASCII字符,你必須通過參數Encoding::UTF_8到CHR處理Unicode字符。

512.chr 
RangeError: 512 out of char range 
     from (irb):8:in `chr' 
     from (irb):8 
     from /usr/bin/irb:12:in `<main>' 

512.chr(Encoding::UTF_8) 
# => "Ȁ" 
[512,513].map{|i| i.chr(Encoding::UTF_8)}.join 
# => "Ȁȁ" 
+1

沒有參數'chr'只處理8位ASCII字符,爲範圍(0..255),它會提高一個'RangeError'以外的整數。您必須將參數'Encoding :: UTF_8'傳遞給'chr'來處理Unicode字符,例如'512.chr(Encoding :: UTF_8)'。 – toro2k

+0

@ toro2k,謝謝你的評論。我用你的評論更新了答案。 – falsetru