Hi Diego,

There's definitely an encoding mismatch going on, and my guess would also be 
that it has to do with your db (and likely your mysql server settings as well).

(Note that the data in your .../states.json looks good to me, in terms of being 
valid utf8.  The problem is likely how that data is being stored in the db, 
such that when pulled out and used in the rails app again, it results in that 
encoding error.)

Try the following in your rails console and see what you get:

$ rails console
Loading development environment ...

### what's the encoding for the env's db conn 
### per ./config/database.yml?:
... :001 > ActiveRecord::Base.configurations[Rails.env]["encoding"]
 => "utf8" 

### how was this db created (as 
### recorded in mysql)?:
... :002 > ActiveRecord::Base.connection.exec_query("show create database 
#{ActiveRecord::Base.connection.current_database}")
 => #<ActiveRecord::Result:..., @rows=[["foo_dev", "CREATE DATABASE `foo_dev` 
/*... DEFAULT CHARACTER SET utf8 */"]], ...> 

### what are the encoding settings 
### for mysql server?:
... :003 > ActiveRecord::Base.connection.exec_query("show variables like 
'char%'")
 => #<ActiveRecord::Result:... @rows=[["character_set_client", "utf8"], 
["character_set_connection", "utf8"], ["character_set_database", "utf8"], 
["character_set_filesystem", "binary"], ["character_set_results", "utf8"], 
["character_set_server", "utf8"], ["character_set_system", "utf8"], ...>

My guess is that one (or more) of the results above for you will show latin1 
instead of utf8.

If that's the case, and there's an issue with the specific db, and you can 
afford to blow it away and start over, then you should drop that db and create 
it again specifying utf8, something like:

...
mysql> create database foo_dev character set utf8 collate utf8_general_ci;
...

Also, if this is the case, and there's an issue with the mysql server settings, 
then you'll probably want to mod your mysql server's config defaults to use 
utf8 (and then restart mysql), something like:

$ cat /etc/mysql/my.cnf
...
[client]
...
default-character-set = utf8

...
[mysqld]
...
collation-server = utf8_unicode_ci
init-connect = 'SET NAMES utf8'
character-set-server = utf8

...
[mysql]
...
default-character-set = utf8

...

Hope that helps,

Jeff



On Tuesday, January 6, 2015 4:36:46 AM UTC-8, Diego Dillenburg Bueno wrote:
>
> Hello,
>
> sorry for the really late reply, had some internet troubles where I was.
>
> I have researched about the collation, but I see that my database is ok, 
> as when I input records manually it saves without any problems special 
> characters, what I'm thinking that is happening is that the data I'm 
> populating comes from a JSON request, and it's coming encoded in ASCII-8BIT 
> I guess. The trouble I'm having is actually on how to convert the strings 
> before I save them on database. The code for the rake can be checked at 
> https://github.com/celsodantas/br_populate/blob/master/br_populate.rb
>
> I believe it has something to do with it.
>
> Thanks for the help
>
>
>
> Diego Dillenburg Bueno
> Graduando em Ciências da Computação
> UNESP - Rio Claro
> (12) 98116-7741
> <https://www.facebook.com/diegodillenburg> 
> <http://br.linkedin.com/in/diegodillenburg> 
> <https://github.com/diegodillenburg>
>
>
> 2014-12-30 15:22 GMT-02:00 Hassan Schroeder <[email protected] 
> <javascript:>>:
>
>> On Tue, Dec 30, 2014 at 3:50 AM, Diego Dillenburg Bueno
>> <[email protected] <javascript:>> wrote:
>> >
>> > And also I'm using a mysql database, with the mysql gem, and I have 
>> seen some records like:
>> > <City id: 5560, name: "Xambio\xC3\xA1", capital: false, state_id: 27,..>
>>
>> You need to make sure your database (or at least the tables you're
>> using for your app) is set up with the appropriate "character set" and
>> "collation" for the language(s) you're using.
>>
>> google: mysql collation portugues brasil
>>
>> for some specific references; also read the MySQL docs for the DB
>> version you're running, e.g.
>>
>> http://dev.mysql.com/doc/refman/5.5/en/charset-charsets.html
>>
>> HTH,
>> --
>> Hassan Schroeder ------------------------ [email protected] 
>> <javascript:>
>> http://about.me/hassanschroeder
>> twitter: @hassan
>>
>> --
>> You received this message because you are subscribed to the Google Groups 
>> "Ruby on Rails: Talk" group.
>> To unsubscribe from this group and stop receiving emails from it, send an 
>> email to [email protected] <javascript:>.
>> To post to this group, send email to [email protected] 
>> <javascript:>.
>> To view this discussion on the web visit 
>> https://groups.google.com/d/msgid/rubyonrails-talk/CACmC4yC4%2Bha1CmCMcE4bH-Bnp6w3Y2oCrUYg_weLezH7W1pemA%40mail.gmail.com
>> .
>> For more options, visit https://groups.google.com/d/optout.
>>
>
>

-- 
You received this message because you are subscribed to the Google Groups "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/24b723e8-156a-4d24-a362-ef0d75e577a6%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to