我正在使用 Rails 3.2.13、ruby 1.9.3 和 Oracle 11g。使用“ñ”之类的字符在数据库中保存记录时,出现以下错误:
ActiveRecord::StatementInvalid (Encoding::UndefinedConversionError:
U+00F1 from UTF-8 to US-ASCII: INSERT INTO "OMNIAUTH_USERS" ("CREATED_AT",
"FIRST_NAME", "ID", "LAST_NAME", "STATUS", "UID", "UPDATED_AT") VALUES (:a1,
:a2, :a3, :a4, :a5, :a6, :a7)):
app/controllers/user_sessions_controller.rb:18:in `create'
我尝试运行此查询以查看 Oracle 使用的语言:
SELECT USERENV ('language') FROM DUAL
它返回 AMERICAN_AMERICA.AL32UTF8。
这些是我对 Oracle 的珍宝:
gem 'ruby-oci8', '~> 2.1.5'
gem 'activerecord-oracle_enhanced-adapter', '~> 1.4.2'
gem 'ruby-plsql', '~> 0.5.0'
我应该怎么办?