I just spent some hours to solve a problem that many people must have : How to correctly show Latin accent characters in rails?
The problem is that usually, you get all '?' when sending to the browser things like 'ç', 'ã' etc.
I spent many hours dealing with this, but couldn't find a good solution from Mr. Google.
So, I wrote the following method :
def to_h(string) saida="" asci = Hash.new for i in 1..255 asci[i.chr] = i end string.each_char do |charac| saida = saida+ "&#"+asci[charac].to_s end return saida end
You should put it either in the application_helper.rb and at the controllers application.rb, so that you can call it either from a view and from a controller.
Basically, it encodes the string in '&#' codes that are standard html for the 'monkey' browser.
Sweet ! Now :
<%=to_h("atenção") %>
outputs as :
atenção
and not as aten??o
Sorry that it is not elegant enough, I had to make a ascii hash, since I couldn't find a standard Ruby function to do this.
If someone can help, please post.
Regards,