我正在使用rails 3.1和资产管道(
ruby 1.9.2).
尝试提供具有utf-8编码字符串的JavaScript js.erb文件时,我会收到以下错误
invalid byte sequence in US-ASCII
我在我的environment.rb文件中设置了Encoding.default_external =“UTF-8”.我如何使资源管道使用不同的编码?
编辑
当我在文件外部生成utf-8字符(在本例中是通过从DB查询)时,该错误才会显示出来.如果我添加,错误消失
<% "日" %>
到文件的顶部.我猜测这里有一些编码猜测,但是如果没有这种hacky解决方案,我该如何避免呢?
加载
文件时,Ruby尝试“猜测”其编码.如果没有找到UTF-8或任何其他非ASCII字符,则使用US-ASCII作为
文件的编码,如果突然遇到非ASCII字符,则会发出
错误.在运行时加载.
这个问题的最佳解决方案是强制Ruby通过添加使用某种编码#encoding:utf-8作为.rb文件的第一行或<%#encoding:utf-8%>如果它是一个.erb文件.
原文链接:https://www.f2er.com/ruby/270998.html