Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 编码未定义的转换错误-Ruby on Rails,写入时出错_Ruby On Rails_Ruby - Fatal编程技术网

Ruby on rails 编码未定义的转换错误-Ruby on Rails,写入时出错

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

所以我试图从一个网站下载一个zip文件,并将数据放入一个表中。下载以前一直有效,但突然,它不再有效了。我遇到了一个“`write':”\xB6“从ASCII-8BIT到UTF-8(编码::UndefinedConversionError)”问题。非常奇怪,自从我上次运行脚本以来,没有任何变化。下面是代码中存在问题的部分。我正在使用一个gem,它允许我在zip文件中解析DBF文件

代码如下:

`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中的编码问题肯定会很快变得非常混乱,因为许多通常隐藏的状态会影响所发生的事情