直到最近,我的计算机上的一切工作正常,但是几天后我随时都会从浏览器发送到服务器时出现错误Encoding::UndefinedConversionError: U+2713 from UTF-8 to US-ASCII
。
首先,由于涉及帖子,我在向database.yml:
添加编码时尝试了最明显的事情development:
adapter: postgresql
hostname: localhost
port: 5432
username: mikael
password:
database: dev
encoding: utf8
如果我安装ruby-debug19和ruby-debug-base19并使用:
运行railsrails s --environment=development --debug
现在一切正常。我该如何找出问题的原因,以便我可以解决它?
编辑1:
1.9.3p0 :001 > Encoding.default_internal
=> #<Encoding:UTF-8>
1.9.3p0 :002 > Encoding.default_external
=> #<Encoding:UTF-8>
编辑2: 如果我在生产模式下运行一切正常。
答案 0 :(得分:14)
尝试在shell中设置LC_ALL
和LANG
变量。将这些行添加到〜/ .profile,〜/ .bash_profile,〜/ .zprofile或类似的地方 - 取决于您的系统。
export LC_ALL=en_US.UTF-8
export LANG=en_US.UTF-8
您可以通过运行locale -a
获取所有区域设置的列表。最后,当您在新的终端窗口中运行locale
时,您会看到类似的内容:
LANG="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_CTYPE="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_ALL="en_US.UTF-8"
答案 1 :(得分:3)
我今天遇到了这个问题。根据Lenart的回答,我的LC_ALL是空白但其他一切看起来都是正确的。更改LC_ALL也没有为我解决。
我的项目的解决方案是将rspec从2.14.6更新为2.14.7。
答案 2 :(得分:1)
这听起来像是bug,已经在Rails 3.1.2中报告了workaround,下一版本的1.9.3应该解决问题
答案 3 :(得分:0)
我的rails服务器从其记录器类中抛出了这个确切的错误。
通过升级到最新的Rails(3.2.13),它就消失了。我刚刚更改了我的Gemfile并执行了一个包更新尾部。