/ / Бах! Я продовжую отримувати цю помилку кодування в рейлах з ruby ​​1.9.2 - mysql, ruby, ruby-on-rails-3, кодування, ruby-on-rails-3.1

Бах! Я постійно отримую цю помилку кодування в рельсах з рубіном 1.9.2 - mysql, ruby, ruby-on-rail-3, кодування, ruby-on-rail-3.1

Я використовую рейки 3.1.1 з ruby-1.9.2-p290 на системі debian через rvm. Я використовую шведські букви в моїх думках і в базі даних mysql. Я продовжую отримувати

несумісні кодування символів: utf-8 і ASCII-8BIT

коли я відвідую сторінку, яка отримує матеріали з db.

у моїй database.yml я маю це:

staging:
adapter: mysql
database:something
encoding: utf8
username: something
password: something
host: localhost

production:
adapter: mysql
database:something
encoding: utf8
username: something
password: something
host: localhost

мій config.ru:

Encoding.default_external = "utf-8"
require ::File.expand_path("../config/environment",  __FILE__)
run Someappname::Application

my environment.rb:

# Load the rails application
require File.expand_path("../application", __FILE__)
Encoding.default_external = Encoding::UTF_8
Encoding.default_internal = Encoding::UTF_8
Someappname::Application.initialize!

мій config / initializers / encoding.rb:

Encoding.default_external = Encoding::UTF_8
Encoding.default_internal = Encoding::UTF_8

Я спробував з усіма комбінаціями "Encoding.default_xxxxxx = Кодування :: UTF_8" і без них

Кожен контролер, помічник та поштова програма починаються з:

# кодування: utf-8

У mysql:

mysql> показати змінні типу "char%";

+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | latin1                     |
| character_set_connection | latin1                     |
| character_set_database   | utf8                       |
| character_set_filesystem | binary                     |
| character_set_results    | latin1                     |
| character_set_server     | latin1                     |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+

І вихід з:

mysql> показати змінні типу "colla%";

+----------------------+-------------------+
| Variable_name        | Value             |
+----------------------+-------------------+
| collation_connection | latin1_swedish_ci |
| collation_database   | utf8_general_ci   |
| collation_server     | latin1_swedish_ci |

Будь-яка ідея про те, що я можу зробити? Я намагаюся дійсно втомитися від цієї проблеми!

Відповіді:

4 для відповіді № 1

Окей, здається, мені вдалося вирішити проблему! Проблема в тому, що я використовував mysql і mysql2 одночасно. Тому, щоб вирішити цю проблему, мені довелося видалити mysql і захопити mysql2 "0.3.7", або інший пристрій кидав у мене дивні помилки. А потім мені довелося змінити адаптер в database.yml на адаптер: mysql2

Сподіваюся, що це допомагає комусь з такою ж проблемою!