Rails 3 无效的多字节字符(US-ASCII)

Posted

技术标签:

【中文标题】Rails 3 无效的多字节字符(US-ASCII)【英文标题】:Rails 3 invalid multibyte char (US-ASCII) 【发布时间】:2011-04-24 10:25:56 【问题描述】:

我找到了一个类似的帖子here,但我仍然无法解决问题。

我知道了

/home/fra/siti/Pensiero/db/seeds.rb:32: invalid multibyte char (US-ASCII)
/home/fra/siti/Pensiero/db/seeds.rb:32: invalid multibyte char (US-ASCII)
/home/fra/siti/Pensiero/db/seeds.rb:32: syntax error, unexpected $end, expecting ')'
... ed il valore della vita, si è malati", :user_id => 1, :cat...

问题出在这个字符串中

:body => "Nel momento in cui ci si chiede il significato ed il valore della vita, si è malati"

我遇到了每个带有重音的“e”字符的问题,比如“è é”

我尝试了魔术评论# coding: utf-8,但它不起作用。

有什么想法吗?

【问题讨论】:

ruby 1.9.2p0,rails 3.0.0,我正在使用 rvm Rails 应该这样做,但您能否检查一下 $KCODE == 'utf-8'? 可能重复***.com/questions/3678172/… ***.com/a/2105210/1028100 【参考方案1】:

只需将以下行作为文件的第一行:

# -*- coding: utf-8 -*-

它会起作用的。

【讨论】:

【参考方案2】:

不要添加# coding: UTF-8,而是尝试在文件的第一行添加# encoding: UTF-8

它对我有用。我在这里找到了信息:http://groups.google.com/group/sinatrarb/browse_thread/thread/f92529bf0cf62015

【讨论】:

【参考方案3】:

在您使用非 ascii 字符的脚本中添加魔术注释?它应该在脚本之上。

# encoding: utf-8

它对我来说就像魅力一样。

或者如果你想扩大项目范围,你可以选择magic-encodinggem

【讨论】:

【参考方案4】:

我换行了:

gem 'pdf-writer', :git => 'git://github.com/metaskills/pdf-writer.git'

这对我有用。

【讨论】:

【参考方案5】:

取自http://devsolvd.com/questions/rails-3-invalid-multibyte-char-us-ascii

gem 'pdf-writer', :git => 'git://github.com/metaskills/pdf-writer.git'

这对我很有用

【讨论】:

以上是关于Rails 3 无效的多字节字符(US-ASCII)的主要内容,如果未能解决你的问题,请参考以下文章

Rails:当我运行 rake db:seed 时,US-ASCII 中的字节序列无效(参数错误)

编码 4 字节 UTF-8 字符 ????从 Rails 到 JSON 产生无效字符

DBI::dbWriteTable,无效的多字节字符串

cygwin dlopen 错误:多字节或宽字符无效或不完整

Rails 预编译错误(无效的 UTF-8 字节序列)

Ruby on Rails - 来自 Paypal 的参数:utf-8 中的无效字节序列