ActionView :: Template :: Error(不兼容的字符编码:UTF-8 和ASCII-8BIT):app / controllers / posts_controller.rb:27:在'new'
# GET /posts/new
def new
if params[:post]
@post = Post.new(post_params).dup
if @post.valid?
render :action => "confirm"
else
format.html { render action: 'new' }
format.json { render json: @post.errors, status: :unprocessable_entity }
end
else
@post = Post.new
@document = Document.new
@documents = @post.documents.all
@document = @post.documents.build
end
我不知道为什么会这样。
答案 0 :(得分:0)
config.encoding = "utf-8"
。'mysql2' gem
mysql gem
# encoding: utf-8
放在rake文件的顶部。 environment.rb 文件中的Rails.application.initialize!
行以上,添加以下两行:
Encoding.default_external =编码:: UTF_8
Encoding.default_internal =编码:: UTF_8
此处的解决方案:http://rorguide.blogspot.in/2011/06/incompatible-character-encodings-ascii.html
如果上述解决方案没有帮助,那么我认为您将Haml模板的一部分复制/粘贴到文件中,或者您正在使用非Unicode /非UTF-8友好编辑器。
如果您可以在UTF-8友好编辑器中从头开始重新创建该文件。任何平台都有很多,看看这是否能解决您的问题。
有时您可能会收到此错误:
不兼容的字符编码:ASCII-8BIT和UTF-8
这通常是因为您尝试连接两个字符串,而一个字符包含不映射到另一个字符串的字符集的字符。 ISO-8859-1中的字符在UTF-8中没有等效字符,反之亦然,如何处理字符串连接与这些不兼容性需要程序员介入。
答案 1 :(得分:0)
我正在升级我的rails和spree,错误实际上来自缓存
删除缓存为我解决了问题
rm -rf tmp/cache