【问题标题】:invalid byte sequence in US-ASCII (ArgumentError), nothing helpsUS-ASCII 中的无效字节序列(ArgumentError),没有任何帮助
【发布时间】:2013-06-20 08:43:15
【问题描述】:

每当我运行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

【问题讨论】:

  • locale -a | grep C.UTF-8 会产生什么吗?

标签: ruby-on-rails ruby linux ubuntu rake


【解决方案1】:

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

#encoding: utf-8

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

【讨论】:

  • 感谢活着..这节省了我的时间接受答案欢呼......!
【解决方案2】:
find . -name *.rb | xargs grep -P "[\x80-\xFF]" -l | xargs sed "1i # encoding: utf-8" -i

尝试修复每个 .rb 文件

UPD:仅在 ubuntu 上测试。

【讨论】:

  • 你让我找到那些垃圾文件!
  • 这里使用的 grep 标志似乎与 Mac 不一致。
  • 在某些 OS/bash 设置中在 *.rb 周围加上单引号。感谢这个 hack 解决了这个错误 - 不幸的是在我的情况下没有工作。
【解决方案3】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-09-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-03
    • 1970-01-01
    相关资源
    最近更新 更多