【发布时间】:2011-08-08 05:03:13
【问题描述】:
Ruby 新手,想知道如何获取以下内容以仅打印度数符号...
require 'htmlentities'
coder = HTMLEntities.new
puts coder.decode('°')
目前命令行(Windows)输出为:°
谢谢!
【问题讨论】:
标签: ruby character-encoding html-entities windows-console
Ruby 新手,想知道如何获取以下内容以仅打印度数符号...
require 'htmlentities'
coder = HTMLEntities.new
puts coder.decode('°')
目前命令行(Windows)输出为:°
谢谢!
【问题讨论】:
标签: ruby character-encoding html-entities windows-console
看起来HTMLEntities.decode 返回一个 UTF-8 字符串,而您的控制台因该编码而窒息。在将字符串传递给 puts 之前,您必须重新编码。
如果您使用的是 Ruby 1.9.2,看起来代码相当简单(基于 String 和 Encoding 文档):
puts coder.decode('°').encode(Encoding.find('<Whatever-Windows-Uses>'))
您可能需要尝试几种不同的编码才能找到您的控制台可以理解的内容。
如果您使用的是旧版本的 Ruby,似乎可以通过 Iconv 重新编码(请参阅 this question - 我怀疑您只是在朝相反的方向前进)。
希望这会有所帮助!
【讨论】: