Reputation: 21
This is definitely a language issue, both of our code and our database contains Chinese characters.
****This is my environment:
About your application's environment Ruby version 1.9.1 (i386-mingw32) RubyGems version 1.3.5 Rack version 1.0 Rails version 2.3.5 Active Record version 2.3.5 Active Resource version 2.3.5 Action Mailer version 2.3.5 Active Support version 2.3.5 Application root C:/path_to_my_root Environment development Database adapter mysql Database schema version 20100327010640
****This is my localhost;3000 after running my ruby server:
ArgumentError in HomeController#construction
invalid byte sequence in GBK
RAILS_ROOT: C:/path_to_my_root
Application Trace | Framework Trace | Full Trace
C:/Ruby19/lib/ruby/gems/1.9.1/gems/actionpack-2.3.5/lib/action_view/
template_error.rb:43:in `split'
C:/Ruby19/lib/ruby/gems/1.9.1/gems/actionpack-2.3.5/lib/action_view/
template_error.rb:43:in `source_extract'
C:/Ruby19/lib/ruby/gems/1.9.1/gems/actionpack-2.3.5/lib/action_view/
template_error.rb:86:in `compute_backtrace'
C:/Ruby19/lib/ruby/gems/1.9.1/gems/actionpack-2.3.5/lib/action_view/
template_error.rb:11:in `initialize'
C:/Ruby19/lib/ruby/gems/1.9.1/gems/actionpack-2.3.5/lib/action_view/
template.rb:212:in `new'
C:/Ruby19/lib/ruby/gems/1.9.1/gems/actionpack-2.3.5/lib/action_view/
template.rb:212:in `rescue in render_template'
C:/Ruby19/lib/ruby/gems/1.9.1/gems/actionpack-2.3.5/lib/action_view/
template.rb:205:in `render_template'
C:/Ruby19/lib/ruby/gems/1.9.1/gems/actionpack-2.3.5/lib/action_view/
base.rb:265:in `render'
C:/Ruby19/lib/ruby/gems/1.9.1/gems/actionpack-2.3.5/lib/action_view/
base.rb:352:in `_render_with_layout'
C:/Ruby19/lib/ruby/gems/1.9.1/gems/actionpack-2.3.5/lib/action_view/
base.rb:262:in `render'
C:/Ruby19/lib/ruby/gems/1.9.1/gems/actionpack-2.3.5/lib/
action_controller/base.rb:1250:in `render_for_file'
C:/Ruby19/lib/ruby/gems/1.9.1/gems/actionpack-2.3.5/lib/
action_controller/base.rb:951:in `render'
C:/Ruby19/lib/ruby/gems/1.9.1/gems/actionpack-2.3.5/lib/
action_controller/benchmarking.rb:51:in `block in
render_with_benchmark'
C:/Ruby19/lib/ruby/gems/1.9.1/gems/activesupport-2.3.5/lib/
active_support/core_ext/benchmark.rb:17:in `block in ms'
C:/Ruby19/lib/ruby/1.9.1/benchmark.rb:309:in `realtime'
C:/Ruby19/lib/ruby/gems/1.9.1/gems/activesupport-2.3.5/lib/
active_support/core_ext/benchmark.rb:17:in `ms'
C:/Ruby19/lib/ruby/gems/1.9.1/gems/actionpack-2.3.5/lib/
action_controller/benchmarking.rb:51:in `render_with_benchmark'
C:/Ruby19/lib/ruby/gems/1.9.1/gems/actionpack-2.3.5/lib/
action_controller/mime_responds.rb:135:in `block in custom'
C:/Ruby19/lib/ruby/gems/1.9.1/gems/actionpack-2.3.5/lib/
action_controller/mime_responds.rb:179:in `call'
C:/Ruby19/lib/ruby/gems/1.9.1/gems/actionpack-2.3.5/lib/
action_controller/mime_responds.rb:179:in `block in respond'
C:/Ruby19/lib/ruby/gems/1.9.1/gems/actionpack-2.3.5/lib/
action_controller/mime_responds.rb:173:in `each'
C:/Ruby19/lib/ruby/gems/1.9.1/gems/actionpack-2.3.5/lib/
action_controller/mime_responds.rb:173:in `respond'
C:/Ruby19/lib/ruby/gems/1.9.1/gems/actionpack-2.3.5/lib/
action_controller/mime_responds.rb:107:in `respond_to'
C:/Users/Howard/Documents/local/vjoin/app/controllers/
home_controller.rb:53:in `construction'
.....
C:/Ruby19/lib/ruby/gems/1.9.1/gems/rack-1.0.1/lib/rack/
methodoverride.rb:24:in `call'
C:/Ruby19/lib/ruby/gems/1.9.1/gems/actionpack-2.3.5/lib/
action_controller/params_parser.rb:15:in `call'
C:/Ruby19/lib/ruby/gems/1.9.1/gems/actionpack-2.3.5/lib/
action_controller/session/cookie_store.rb:93:in `call'
C:/Ruby19/lib/ruby/gems/1.9.1/gems/actionpack-2.3.5/lib/
action_controller/failsafe.rb:26:in `call'
C:/Ruby19/lib/ruby/gems/1.9.1/gems/rack-1.0.1/lib/rack/lock.rb:11:in
`block in call'
:8:in `synchronize'
C:/Ruby19/lib/ruby/gems/1.9.1/gems/rack-1.0.1/lib/rack/lock.rb:11:in
`call'
C:/Ruby19/lib/ruby/gems/1.9.1/gems/actionpack-2.3.5/lib/
action_controller/dispatcher.rb:114:in `block in call'
C:/Ruby19/lib/ruby/gems/1.9.1/gems/actionpack-2.3.5/lib/
action_controller/reloader.rb:34:in `run'
C:/Ruby19/lib/ruby/gems/1.9.1/gems/actionpack-2.3.5/lib/
action_controller/dispatcher.rb:108:in `call'
C:/Ruby19/lib/ruby/gems/1.9.1/gems/rails-2.3.5/lib/rails/rack/
static.rb:31:in `call'
C:/Ruby19/lib/ruby/gems/1.9.1/gems/rack-1.0.1/lib/rack/urlmap.rb:46:in
`block in call'
C:/Ruby19/lib/ruby/gems/1.9.1/gems/rack-1.0.1/lib/rack/urlmap.rb:40:in
`each'
C:/Ruby19/lib/ruby/gems/1.9.1/gems/rack-1.0.1/lib/rack/urlmap.rb:40:in
`call'
C:/Ruby19/lib/ruby/gems/1.9.1/gems/rails-2.3.5/lib/rails/rack/
log_tailer.rb:17:in `call'
C:/Ruby19/lib/ruby/gems/1.9.1/gems/rack-1.0.1/lib/rack/
content_length.rb:13:in `call'
C:/Ruby19/lib/ruby/gems/1.9.1/gems/rack-1.0.1/lib/rack/handler/
webrick.rb:50:in `service'
C:/Ruby19/lib/ruby/1.9.1/webrick/httpserver.rb:111:in `service'
C:/Ruby19/lib/ruby/1.9.1/webrick/httpserver.rb:70:in `run'
C:/Ruby19/lib/ruby/1.9.1/webrick/server.rb:183:in `block in
start_thread'
Request
Parameters:
None
Show session dump
Response
Headers:
{"Cache-Control"=>"no-cache",
"Content-Type"=>"text/html"}
****What should I do? I tried to search online, didn't find much. The only thing I found was something like putting the following into application_controller:
before_filter :set_charset, :set_locale
def set_charset
response.headers["Content-Type"] = "text/html; charset=utf-8"
WIN32OLE.codepage = WIN32OLE::CP_UTF8 end
but this still doesn't work. I am new to ruby on rails, so don't know much about it.
Thanks for your help.
Upvotes: 2
Views: 1879
Reputation: 155
Linux:
export LC_ALL=en_US.UTF-8
export LANG=en_US.UTF-8
Windows:
set LC_ALL=en_US.UTF-8
set LANG=en_US.UTF-8
Upvotes: 6
Reputation: 131
Rails 2.3.5 doesn't seem to play nice with ruby 1.9.1 in all cases, due to the changes made in 1.9.1's handling of strings and localizations.
Try downgrading ruby to 1.8.7 and see if this helps you. (Easiest way to test this is just to use RVM (http://rvm.beginrescueend.com/)
FYI in my case I was able to solve the problem by making sure to include:
encoding: utf8
in my databases.yml
Upvotes: 1