2

每当我运行时,我都会突然出现错误rake db:create。错误是

rake aborted!
/home/me/.rvm/gems/ruby-1.9.3-p392/gems/rake-10.0.4/lib/rake/trace_output.rb:16:in `block in trace_on': invalid byte sequence in US-ASCII (ArgumentError)
  from /home/me/.rvm/gems/ruby-1.9.3-p392/gems/rake-10.0.4/lib/rake/trace_output.rb:14:in `map'
  from /home/me/.rvm/gems/ruby-1.9.3-p392/gems/rake-10.0.4/lib/rake/trace_output.rb:14:in `trace_on'
  from /home/me/.rvm/gems/ruby-1.9.3-p392/gems/rake-10.0.4/lib/rake/application.rb:328:in `trace'
  from /home/me/.rvm/gems/ruby-1.9.3-p392/gems/rake-10.0.4/lib/rake/application.rb:183:in `display_error_message'
  from /home/me/.rvm/gems/ruby-1.9.3-p392/gems/rake-10.0.4/lib/rake/application.rb:169:in `rescue in standard_exception_handling'
  from /home/me/.rvm/gems/ruby-1.9.3-p392/gems/rake-10.0.4/lib/rake/application.rb:159:in `standard_exception_handling'
  from /home/me/.rvm/gems/ruby-1.9.3-p392/gems/rake-10.0.4/lib/rake/application.rb:70:in `run'
  from /home/me/.rvm/gems/ruby-1.9.3-p392/gems/rake-10.0.4/bin/rake:33:in `<top (required)>'
  from /home/me/.rvm/gems/ruby-1.9.3-p392/bin/rake:23:in `load'
  from /home/me/.rvm/gems/ruby-1.9.3-p392/bin/rake:23:in `<main>'

我做了

me@ubuntu:~ export LANG="C.UTF-8"
me@ubuntu:~ export LC_ALL="C.UTF-8"

我有

me@ubuntu:~ echo $LANG
en_US
me@ubuntu:~ echo $LC_ALL
en_US.UTF-8
4

3 回答 3

11

尝试在此任务涉及的文件的第一行添加以下字符串:

#encoding: utf-8

这些文件可能是您所有的自定义初始化程序、您的 database.yml 等

于 2013-06-20T09:07:42.173 回答
7
find . -name *.rb | xargs grep -P "[\x80-\xFF]" -l | xargs sed "1i # encoding: utf-8" -i

试试这个来修复每个 .rb 文件

UPD:仅在 ubuntu 上测试。

于 2013-12-23T11:47:27.800 回答
0

如果您的名称包含非美国 ASCII 字符(我的名称中有一个“Ö”),您会在使用 Bitnami Redmine 堆栈时迷路,因为它们会记录该名称而无需对 setup.rb 文件进行任何更改。它会导致这个确切的错误通知“US-ASCII 中的无效字节序列(ArgumentError)”。一旦我在该文件中将自己重命名为“oe”,一切正常!(在 rake db:migrate 之后)

于 2013-12-06T10:24:38.860 回答