环境:Rails 3.2.11 应用程序
在资产/javascript中
我有这个文件 home.js.coffee.erb :
jQuery ($) ->
$.supersized
# Functionality
slide_interval: 3000 # Length between transitions
transition: 3 # 0-None, 1-Fade, 2-Slide Top, 3-Slide Right, 4-Slide Bottom, 5-Slide Left, 6-Carousel Right, 7-Carousel Left
transition_speed: 700 # Speed of transition
thumbnail_navigation: 0
# Components
slide_links: "blank" # Individual links for each slide (Options: false, 'num', 'name', 'blank')
slides: [
<% for cs in CreativeService.where('active') %>
image: "<%= cs.featured_image.url %>"
title: "<%= cs.art.name %> > <%= cs.title %> by <%= cs.artist.first_name %> <%= cs.artist.last_name[0] %>"
thumb: "<%= cs.featured_image.url(:small) %>"
url: "/creative_services/<%= cs.id %>"
,
<% end %>
]
这可以在我的开发环境中正确评估,但是一旦部署到 HEROKU,我就会收到此错误
throw Error("Encoding::InvalidByteSequenceError: \"\\xC3\" on US-ASCII\n (in /app/app/assets/javascripts/home.js.coffee.erb)")
该错误似乎是由于从数据库中获取的字符 å æ ø (我正在使用挪威语言)
<%= cs.title %> <= 我可以对这个字符串做些什么来防止这个错误?
在我的 Gemfile 中:
group :assets do
gem 'sass-rails', "~> 3.2.5"
gem 'uglifier', '>= 1.0.3'
end
gem 'coffee-rails', "~> 3.2.2" <= outside or inside the group doesn't help
我尝试在 application.rb 文件中添加这些,但没有帮助:
Encoding.default_external = Encoding::UTF_8
Encoding.default_internal = Encoding::UTF_8
还要在 js.coffee.erb 文件的开头加上这个,还是没有成功:
# encoding: utf-8
最后发现:
我认为错误是由于从数据库中获取的文本而发生的。