Incompatible character encodings: ASCII-8BIT and UTF-8

Hi,
I have problem with showing some string in my site with Rails 4
I get this message:
incompatible character encodings: ASCII-8BIT and UTF-8

concerning this html sequence in an erb file:

<%= MyString.to_s.force_encoding("UTF-8") %>

I get this problem only on production server, but I do not have the
problem on my local computer
What can I do with this problem

regards,

Where this MyString comes from? Maybe your production and local
databases
configured to use different encodings.

It is coming from an hypertable database, the sring is logged well wih
the
word written with accent
I use the same database with my local computer without problem, I have
the
poblem only on production server

I didn’t say that databases are different. I said that they could use
different encodings.

On Nov 19, 2014, at 7:49 AM, Melb01 [email protected] wrote:

At the top of this erb file, add the line:

encoding: UTF-8

Make sure it is the very first line of the file. This will force the
Ruby interpreter to read the page as unicode, no matter what format the
file may actually be saved in (or mistaken for).

Walter

but i don"t understand why it worked normally on my local computer and
coming from the same databse

Dear sir, how do you define “same”? They could contain same data with
different encodings.

I add it to every file used for this template but it didn’t work

I was able to solve it using the method encode(“utf-8”, uttf-8") for the
Mystring directly after the query from database and it worked

but i don"t understand why it worked normally on my local computer and
coming from the same databse

rgds,

I assume you have created a “dump” of the data from production and
copied it to your local MySQL version.

Also I assume you are comparing the same records on dev & production
(“comparing apples to apples”)

Check the character set (also known as “encoding”) and collation
settings on the table (on both your dev and production database) to make
sure they are the same.

see http://dev.mysql.com/doc/refman/5.0/en/charset-table.html for an
explanation

Note that these are set on a table-by-table basis. Because MySQL was
originally invented in Sweden, the historical default for the character
encoding is utf8_sweedish_ci. Typically people change that to
utf8_unicode_ci

Once you verify they are identical on both machines, if you want to fix
them on Production you’ll want to use a Rails migration.

see also…

-Jason

On Nov 20, 2014, at 9:39 AM, Vladimir Gordeev
[email protected] wrote:

but i don"t understand why it worked normally on my local computer and coming
from the same databse

Dear sir, how do you define “same”? They could contain same data with different
encodings.


You received this message because you are subscribed to the Google G. “Ruby
on Rails: Talk” group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/rubyonrails-talk/CAP1h_xeY2c0L4qMpP8t0zSvKrjsP2J4b0HXvYsZ5epJ7UZ7Csw%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.


Jason Fleetwood-Boldt
[email protected]

All material © Jason Fleetwood-Boldt 2014. Public conversations may be
turned into blog posts (original poster information will be made
anonymous). Email [email protected] with questions/concerns about
this.