Ruby on Rails Monday, January 5, 2015

Thanks for the insight, but I think the issue is at the rails level. Since when I tried inserting the same values in the mysql db directly, it worked without any errors. It might be because the character that I am trying to insert is not UTF8. But rails is enforcing that encoding. What would be the encoding change required to be done at rails level?

Also, I have a system where I would need to scale things later. So, I would have to change the encoding of a particular table every time I have to create a new instance. Is there any way to deal with that?

On Monday, January 5, 2015 11:43:31 PM UTC+5:30, Hassan Schroeder wrote:
On Mon, Jan 5, 2015 at 10:00 AM, Kriti Aggarwal <krit...@gmail.com> wrote:
> Following are the encodings/collations and versions that I am using:
> Rails : utf8, 4.0
> Mysql: latin_general_ci, 14.14 Distrib 5.5.40

Well, it should be pretty obvious you have a mismatch there, which is
a problem. But there's not just one encoding-related variable. Example:

mysql> show variables like '%char%';
+--------------------------+--------------------------------------------------------+
| Variable_name            | Value
             |
+--------------------------+--------------------------------------------------------+
| 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
             |
| character_sets_dir       |
/usr/local/mysql-5.6.13-osx10.7-x86_64/share/charsets/ |
+--------------------------+--------------------------------------------------------+
8 rows in set (0.00 sec)

mysql> show variables like '%coll%';
+----------------------+-----------------+
| Variable_name        | Value           |
+----------------------+-----------------+
| collation_connection | utf8_general_ci |
| collation_database   | utf8_general_ci |
| collation_server     | utf8_general_ci |
+----------------------+-----------------+
3 rows in set (0.01 sec)

You want, at the least, all of those consistent. If you need the 4-byte
character capability, then set them appropriately.

Note: you'll need to manually alter (or drop and recreate) existing
databases/tables afterwards.

HTH,
--
Hassan Schroeder ------------------------ hassan.s...@gmail.com
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 rubyonrails-talk+unsubscribe@googlegroups.com.
To post to this group, send email to rubyonrails-talk@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/rubyonrails-talk/1646bb47-2dc1-4306-8112-c663e008b0e8%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

No comments:

Post a Comment