Ruby on rails 编码未定义的转换错误-Ruby on Rails,写入时出错
所以我试图从一个网站下载一个zip文件,并将数据放入一个表中。下载以前一直有效,但突然,它不再有效了。我遇到了一个“`write':”\xB6“从ASCII-8BIT到UTF-8(编码::UndefinedConversionError)”问题。非常奇怪,自从我上次运行脚本以来,没有任何变化。下面是代码中存在问题的部分。我正在使用一个gem,它允许我在zip文件中解析DBF文件 代码如下:Ruby on rails 编码未定义的转换错误-Ruby on Rails,写入时出错,ruby-on-rails,ruby,Ruby On Rails,Ruby,所以我试图从一个网站下载一个zip文件,并将数据放入一个表中。下载以前一直有效,但突然,它不再有效了。我遇到了一个“`write':”\xB6“从ASCII-8BIT到UTF-8(编码::UndefinedConversionError)”问题。非常奇怪,自从我上次运行脚本以来,没有任何变化。下面是代码中存在问题的部分。我正在使用一个gem,它允许我在zip文件中解析DBF文件 代码如下: `write': "\xB6" from ASCII-8BIT to UTF-8 (Encoding::U
`write': "\xB6" from ASCII-8BIT to UTF-8 (Encoding::UndefinedConversionError)
谢谢你的帮助
更新:很明显,我是在rails中运行的。我在rails环境之外运行了脚本,它运行得很好。因此Rails以某种方式干扰了写入过程
更新2:已解决-我将“w”改为“wb”,显然这是由rails 3+引起的。我以前没想过要试试这个。希望这能帮助其他人 你也可以通过传球来完成
:output_encoding => "binary"
打开,我认为这与模式“wb”的作用相同,也许更清楚。但是搞清楚“wb”干得不错:)
是的,在支持字符编码的Ruby1.9中,您经常需要告诉您想要的编码的不同内容,包括“null编码”‘binary’
有可能Rails正在将编码设置为UTF-8,而文件正在使用编码。这可能是Rails与非Rails不同的原因
Ruby1.9中的编码问题肯定会很快变得非常混乱,因为许多通常隐藏的状态会影响所发生的事情