Hello, I''m playing around with Rails and I''m having problems with displaying swedish characters. This is how far I''ve gotten: I have a controller... class MiscController < ApplicationController def swedish_chars @chars_to_display = ''???'' end end ...and a template (swedish_chars.rhtml) <head> <title>Test with swedish chars</title> <meta HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"> </head> <body> <p>These are swedish chars: ?, ? and ?</p> <p>Now lets try with a variable: <%= @chars_to_display %></p> </body> </html> The thing is that the characters in the first paragraph displays nicely (the charset of the file swedish_chars.rhtml is set to UTF-8). The problem is with the second paragraph, the one that displays the content of the controller set variable @chars_to_display. There are two types of symptoms depending on which charset I use for the controller file misc_controller.rb. If I use charset 8-bit the swedish characters are displayed as ?-characters. If I use charset UTF-8 on the other hand I get this error from Ruby: ***** SyntaxError app/controllers/misc_controller.rb:1: Invalid char `\357'' in expression app/controllers/misc_controller.rb:1: Invalid char `\273'' in expression app/controllers/misc_controller.rb:1: Invalid char `\277'' in expression RAILS_ROOT: ./script/../config/.. [---Long stack trace removed---] This error occured while loading the following files: misc_controller.rb ***** What am I doing wrong? Oh yes: I,m using WEBrick as server. Best regards Hans-Eric Gr?nlund -- Posted via http://www.ruby-forum.com/.
1) Are you sure your editor saves the text as utf-8? 2) Did you tell rails that the source file is utf-8? Look here http://www.fngtps.com/2006/01/encoding-in-rails> ***** > SyntaxError > > app/controllers/misc_controller.rb:1: Invalid char `\357'' in expression > app/controllers/misc_controller.rb:1: Invalid char `\273'' in expression > app/controllers/misc_controller.rb:1: Invalid char `\277'' in expression >-- Posted via http://www.ruby-forum.com/.
Thanks for the reply!> 1) Are you sure your editor saves the text as utf-8?Yes> 2) Did you tell rails that the source file is utf-8?I''m not sure how to do that.> http://www.fngtps.com/2006/01/encoding-in-railsThank you, this link helped me understanding the problem better. I discovered that there were two kinds of utf-8 encodings to choose between in my editor. When I used the second one: utf-8 cookie, the problem disapeared. My guess is that the editor save some magic bytes in the ''pure'' utf-8 file format, and that ruby chokes on these magic bytes. Any way it works like a charm for me now. Thanks for the help. Best regards Hans-Eric Gr?nlund -- Posted via http://www.ruby-forum.com/.
Hans-Eric Gr?nlund wrote:>> 2) Did you tell rails that the source file is utf-8? > I''m not sure how to do that.That''s the $KCODE = ''UTF8'' part mentioned in the article. Put it in application.rb for switching ruby to utf-8 source files. You (end everyone else) should also read these two articles: http://www.joelonsoftware.com/articles/Unicode.html http://www.tbray.org/ongoing/When/200x/2003/04/26/UTF -- Posted via http://www.ruby-forum.com/.
Kasper Weibel wrote:> Hans-Eric Gr?nlund wrote: >>> 2) Did you tell rails that the source file is utf-8? >> I''m not sure how to do that. > > That''s the $KCODE = ''UTF8'' part mentioned in the article. Put it in > application.rb for switching ruby to utf-8 source files. > > You (end everyone else) should also read these two articles: > http://www.joelonsoftware.com/articles/Unicode.html > http://www.tbray.org/ongoing/When/200x/2003/04/26/UTFI also had lots of problems with swedish characters, and tried several things suggested on different sites, defingin set_charset=utf-8 in application.rb etc, etc. But after many trials Thomas Fuchs pointed out that it is best to "not tell Rails about it" ie use UTF-8 but not do any modifications. It seems that the problems lie mainly in the editors one uses. I used Ultraedit which obviously did something to my files. Now I have nothing in Rails defining my use of UTF-8, I use RadRails for editing, making sure that all the folder with underlying files are set to use text file encoding UTF-8. As of now I have swedish characters in the rhtml files, in the database content, and in also sent via variables (like the example above) and it all works. The only thing I don?t have is swedish characters in the database table and fields names, but that is something I don?t usually have anyway. I also do not have any swedish characters in variable names etc, which is also something I don?t need, since we do all the "internals" in english anyway. So: Best not let Rails know about it, to quote Thomas Fuchs. So far so good... Per-Olof Hermansson -- Posted via http://www.ruby-forum.com/.
Do tell please :) Sounds like I need your setup exactly. Have you got web forms for collection of Swedish characters that work properly with Oracle? Bealach On 4/20/06, Per-Olof Hermansson <per-olof.hermansson@massmarketing.se> wrote:> Kasper Weibel wrote: > > Hans-Eric Gr?nlund wrote: > >>> 2) Did you tell rails that the source file is utf-8? > >> I''m not sure how to do that. > > > > That''s the $KCODE = ''UTF8'' part mentioned in the article. Put it in > > application.rb for switching ruby to utf-8 source files. > > > > You (end everyone else) should also read these two articles: > > http://www.joelonsoftware.com/articles/Unicode.html > > http://www.tbray.org/ongoing/When/200x/2003/04/26/UTF > > I also had lots of problems with swedish characters, and tried several > things suggested on different sites, defingin set_charset=utf-8 in > application.rb etc, etc. > > But after many trials Thomas Fuchs pointed out that it is best to "not > tell Rails about it" ie use UTF-8 but not do any modifications. > > It seems that the problems lie mainly in the editors one uses. I used > Ultraedit which obviously did something to my files. > > Now I have nothing in Rails defining my use of UTF-8, I use RadRails for > editing, making sure that all the folder with underlying files are set > to use text file encoding UTF-8. > > As of now I have swedish characters in the rhtml files, in the database > content, and in also sent via variables (like the example above) and it > all works. > > The only thing I don?t have is swedish characters in the database table > and fields names, but that is something I don?t usually have anyway. I > also do not have any swedish characters in variable names etc, which is > also something I don?t need, since we do all the "internals" in english > anyway. > > So: Best not let Rails know about it, to quote Thomas Fuchs. > > So far so good... > > Per-Olof Hermansson > > -- > Posted via http://www.ruby-forum.com/. > _______________________________________________ > Rails mailing list > Rails@lists.rubyonrails.org > http://lists.rubyonrails.org/mailman/listinfo/rails >