Rails erb 只要有中文就报:incompatible character encodings: UTF-8 and ASCII-8BIT

lin_style · 2012年04月19日 · 最后由 naitnix 回复于 2012年06月18日 · 17855 次阅读

<%= @name %>

如果@name是个中文内容,就报标题上的错误。 GOOGLE,BAIDU 都搜过解决方案,都不行。

C:\Sites>ruby -v ruby 1.9.3p125 (2012-02-16) [i386-mingw32]

C:\Sites>rails -v Rails 3.2.2

mysql:5.5.20

================= http://www.cnblogs.com/kting/archive/2011/09/15/2177530.html

按这位大牛说的解决了。。

哪个.rb 文件出现中文就在文件头

#encoding: utf-8

也不行吗?

该设置 UTF8 的地方也都设置了。。

#1 楼 @AlphaLiu

我觉得跟这个可能无关,应该是某个地方被转义成 ASCII-8BIT 了。。

config.encoding = "utf-8" 也加了?

文件编码是否是 UTF-8 ?

这个我之前碰到过和你同样的问题,你检查你的 erb 中有没有没有结束的脚本块。比如<%= 没有结束的%>.我之前报这样的错,就是这个原因。

mysql 数据库是 utf-8 么?

#9 楼 @blogbin

都是 解决方法如下 1)如果是 gem mysql 的,按楼主给出的连接修改代码就好 2)如果是 gem mysql2,一切正常

有时候是输入法的问题,比如半角与全角。。

Rails3.2 居然还用 mysql 驱动!!

#12 楼 @hooopo 不好意思,,新手。。

#6 楼 @huacnlee @hooopo 如果 rails 项目中,很多文件都有中文,那么是否该在每个文件的头部都写 #encoding: utf-8?

每个都写

#14 楼 @googya 是的 有编辑器可以有快捷键插入这个 还有插件可以批量加

嘿,哥们儿,你们说的我都做了,但是还是报错,我的错误相对于你的来说,情况要简单的多,我只是在 applications.html.erb 里面引入了 javascript 文件,这个文件里面有中文,所以会报这个错误,如果我将中文换成英文的话,一切都正常,很显然这个是因为中文造成的,我在网上找到了很多关于这个的解决方案,悲剧的是,都没能解决我的问题,只是简简单单的 js 文件里面有中文,否则的话,就不报错了,求指教

需要 登录 后方可回复, 如果你还没有账号请 注册新账号