【发布时间】:2013-09-04 17:46:42
【问题描述】:
当我尝试使用 Mechanize 和 Ruby 2.0 提交文本区域时,我总是得到一个
Encoding::UndefinedConversionError: U+0151 from UTF-8 to ISO-8859-1
然后我尝试用Iconv转换文本,我得到了类似的结果:
Iconv.iconv("LATIN1", "UTF-8", text)
我收到此错误消息:
Iconv::IllegalSequence: "őzködik, melyet "...
由于文本包含东欧字符。我可以做些什么来避免这种不便,或者如何在不同的编码之间正确转换?
【问题讨论】:
-
你能给出代码部分,通过它你将文本数据放入文本区域框...?
-
该字符不会转换为 latin1,因为它在 latin1 中不存在。
-
我的 Ruby 程序包含文本作为 here-document,并且我的 Ruby 程序的编码设置为 utf-8 (# encoding: utf-8) 如果我在 Opera 浏览器中加载网页,我检查了源 HTML,页面编码实际上设置为 ISO-8859-1,如果我只是粘贴包含错误字符的文本,它可以正常工作,我可以毫无错误地提交。如何将 utf-8 字符串转换为 ISO-8859-1 / LATIN1?也许我可以使用 HTML 中的代码:ő (从此表thesauruslex.com/typo/eng/enghtml.htm)
标签: ruby encoding utf-8 mechanize iconv