2011-04-18 72 views
0

新紅寶石,我想知道如何得到以下只打印度符號...紅寶石HTML實體問題

require 'htmlentities' 
coder = HTMLEntities.new 
puts coder.decode('°') 

目前的命令行(Windows)中的輸出是:A°

謝謝!

回答

1

它看起來像HTMLEntities.decode以UTF-8返回一個字符串,並且您的控制檯在該編碼上窒息。在傳遞給puts之前,您必須重新編碼您的字符串。

如果你使用Ruby 1.9.2,它看起來像代碼相當簡單(基於StringEncoding文檔):

puts coder.decode('&deg;').encode(Encoding.find('<Whatever-Windows-Uses>')) 

你可能有之前多嘗試一些不同的編碼找到你的主機可以理解的東西。

如果您使用的是舊版本的Ruby,看起來好像通過Iconv可以重新編碼(請參閱this question - 我懷疑您只是朝相反的方向)。

希望這會有所幫助!

+0

謝謝。它適用於iso-8859-1 – Rob 2011-04-18 23:21:34