簡體   English   中英

Rails 3.1、Ruby 1.9.2-p180 和 UTF-8 問題

[英]Rails 3.1, Ruby 1.9.2-p180 and UTF-8 issues

我在使用 UTF-8 字符時遇到了一些問題。 這是 db/seeds.rb

User.create(username: 'eml', first_name: '****', last_name: '****äck', 
            email: 'somemail@example.com', password: 'asdasd')

我的終端(OSX 10.5.8)設置為使用 UTF-8,Rails(根據 application.rb)設置為使用 utf-8。 這是錯誤:

$ rake db:seed
rake aborted!
/Projects/***/db/seeds.rb:8: invalid multibyte char (US-ASCII)
/Projects/***/db/seeds.rb:8: invalid multibyte char (US-ASCII)
/Projects/***/db/seeds.rb:8: syntax error, unexpected $end, expecting ')'
...ame: '****', last_name: '****äck', 
...                               ^

Tasks: TOP => db:seed
(See full trace by running task with --trace)

添加這一行# encoding: utf-8seeds.rb文件和任何 ruby 文件頂部使用特殊字符

我建議您將Encoding.default_external = "UTF-8"添加到config.ru文件和config/environment.rb中以進行編碼模板

最后,您可以將"".force_encoding('UTF-8)添加到造成問題的字符串中。

更新:

在 config.ru 上添加整行:

# Not override -E option or LANG and apply only for ruby > 1.9
if Object.const_defined?(:Encoding) &&.ENV['LANG'] &&?ENV['RUBYOPT'].include?('-E')
Encoding.default_internal = 'utf-8'
Encoding.default_external = 'utf-8'
end

資源

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM