Issues with template encoding (invalid byte sequence in UTF-8):

Well i have tried to find the answer by myself and i had no luck at all,
so here it is:

i have followed all the tips i have found here and there, putting
<% # coding: UTF-8 %>
using encode and force_encoding
even trying some wacky regex i came up with (which of course was a dumb

i am using ruby 1.9.2p290 and Rails 3.0.3

i have no clue at all what is wrong

the crazy part of this is that the line where the error happens
is an URL...

ActionView::Template::Error (invalid byte sequence in UTF-8):
    52: <tr class="<%= cycle("row-odd", "row-even") -%>"
title="Direccion de la informacion.">
    53: <td> URL </td>
    54: <td>
    55: <a href="<%= entry[:original_url] %>"
target="_blank" title="<%= CGI.unescape( entry[:original_url] )
%>">Abrir en nuevo tab.</a>
    56: </td>
    57: </tr>
  app/views/main/results.html.erb:55:in `block (2 levels) in
  app/views/main/results.html.erb:33:in `block in
  app/views/main/results.html.erb:23:in `each'

in advance thank you very much for your time

The template is likely UTF-8, but the information from the database,
e.g. entry[:original_url] is likely ASCII-8BIT if you are using MySQL and the
mysql adapter, assuming your tables are UTF-8. Try using the mysql2 adapter
instead. IIRC, install the mysql2 gem and change all 'adapter: mysql' in
config/database.yml to 'adapter: mysql2'.


Quoting Mex Noob Yes <>:

Have you tried in the beginning of the file

encoding: UTF-8

It works for me

Javier Q.

I figured out what it was (but i have no clue why)
it was not the whole content but just

title="<%= CGI.unescape( entry[:original_url] )"

taking out this fixed the whole problem...
kinda makes sense to me, but it is still kinda crazy...

hope someone finds this if they get this in their way too
and dont spend 4 days trying to fix it with all sorts
of encoding, decoding, iconv tricks, trying to set it to "", etc