我有一个包含300多个HTML文件的目录,我需要从中解析数据并将其放入新的HTML模板中,除了预先呈现的HTML实体(例如出现的平方根√
)之外,该模板效果很好在一些文件中。在过去的几个小时里,我已经阅读了大量关于Ruby 1.9中的编码的帖子,并尝试了以下内容:
File.read( "_pending/testdir/filename.html", :encoding=>"UTF-8" )
和
trans = Iconv.new( 'UTF-8', 'IBM437' )
input_text = File.read( "_pending/testdir/filename.html" )
output_text = trans.iconv( input_text )
puts output_text
一切都没有运气。转换后,平方根符号在浏览器中以及原始HTML标记中仍显示为√
,但Iconv
解决方案除外AªAo
在puts
时输出IBM437
}}
设置
Windows Server 2008 R2
ruby 1.9.3p194(2012-04-20)[i386-mingw32]
当我执行HTML_FILE.external_encoding.name
时,编码名称会返回{{1}}。
答案 0 :(得分:2)
你一定是在开玩笑......
修复方法是在HTML模板页面中设置内容标题。我猜测控制台正在输出有效的UTF-8但不是可识别的格式。
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
虽然我现在觉得很愚蠢,但我相信其他人会遇到类似的东西,所以如果那就是你:我感受到你的痛苦;我希望你没有花费最后6个小时进行故障排除。