ruby-on-rails - 无效的多字节字符 (UTF-8) 错误,Ruby

标签 ruby-on-rails ruby ruby-on-rails-3

我尝试使用命令 rails runner 在 rails 中运行 ruby​​ 脚本。 ruby 文件看起来像这样,应该会创建新患者:

 Patient.create!({:vorname => 'Josepha', :nachnahme => 'Brecht', :geburtsdatum => '25.04.1963', :strasse => 'Umdorf', :ort => 'Wörthss', :plz => '93093'})
 Patient.create!({:vorname => 'Tumba', :nachnahme => 'Hoch', :geburtsdatum => '17.77.1956', :strasse => 'Hamaß 1', :ort => 'Brenn', :plz => '93189'})

但不知何故,我的代码在德语方面存在问题!我是编程初学者,不知道我必须改变什么!感谢您的帮助!

 C:\Sites\what>rails runner patienten.rb
 C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/railties-3.2.13/lib/rails/c
 ommands/runner.rb:51:in `eval': patienten.rb:2: invalid multibyte char (UTF-8) (
 SyntaxError)
 patienten.rb:2: syntax error, unexpected tIDENTIFIER, expecting '}'
 ...> 'Schlossberg', :ort => 'Wörth', :plz => '93086'})
 ...                               ^
 patienten.rb:2: syntax error, unexpected tINTEGER, expecting $end
 ...:ort => 'Wörth', :plz => '93086'})
 ...                               ^
    from C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/railties-3.2.1
 3/lib/rails/commands/runner.rb:51:in `<top (required)>'
    from C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/railties-3.2.1
 3/lib/rails/commands.rb:64:in `require'
    from C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/railties-3.2.1
 3/lib/rails/commands.rb:64:in `<top (required)>'
    from script/rails:6:in `require'
    from script/rails:6:in `<main>'

最佳答案

这个文件是什么格式的?你确定它是 UTF-8 而不是 Windows 1252 Windows 中的默认设置是什么?

在 Ruby 1.9 中,您文件中的 header 需要指明实际使用的格式:

# encoding: UTF-8

如果这不起作用,您可能需要与其他人一起试验:

# encoding: Windows-1252

另一种常见格式是 ISO Latin1 :

# encoding: ISO-8859-1

1252和8859-1都是单字节字符集,每个字符总是一个字节,其中UTF-8是可变长度,每个字符是一个或多个字节。

如果需要格式之间的转换,通常可以在an editor that's encoding aware中打开和“另存为...”与你想要的编码。否则你可以尝试使用 iconv为您转换它。

关于ruby-on-rails - 无效的多字节字符 (UTF-8) 错误,Ruby,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17859530/

相关文章:

ruby - X 传递给 rake 任务的参数数量

ruby-on-rails-3 - 使用 Rails 3.2.12 使用 capybara 进行 ajax 调用的集成测试错误

sql - 跟踪 Rails 3 SQL 查询

ruby-on-rails - RoR 4 中带验证的正则表达式

html - Ruby on Rails SSL_connect 错误

ruby-on-rails - 关于 RoR 更新数据库记录

ruby-on-rails - 如何使 acts_as_list 与分组一起工作

javascript - 如何从 HAML 的 :javascript? 中运行每个 block

ruby-on-rails-3 - 将字段添加到 params 哈希

mySql root登录报错,database.yml中没有root