У меня есть сайт Rails, который работает на MySQL 5.0.32-Debian.
На этом конкретном сайте все мои таблицы используют utf8 / utf8_general_ci encoding.
Внутри этой базы данных у меня есть некоторые данные, которые выглядят так:
mysql> select * from currency_types limit 1,10;
+------+-----------------+---------+
| code | name            | symbol  |
+------+-----------------+---------+
| CAD  | Canadian Dollar | $       |
| CNY  | Chinese Yuan    | å…ƒ     |
| EUR  | Euro            | €     |
| GBP  | Pound           | £      |
| INR  | Indian Rupees   | ₨     |
| JPY  | Yen             | ¥      |
| MXN  | Mexican Peso    | $       |
| USD  | US Dollar       | $       |
| PHP  | Philippine Peso | ₱     |
| DKK  | Denmark Kroner  | kr      |
+------+-----------------+---------+
Здесь проблема, с которой я сталкиваюсь
При постановке (с сайтом db и Rails, запущенным в блоке debian) символы символов отображаются корректно, когда отображаются в Rails. Например, китайский юань появляется как 元 в моем браузере, а не å... ƒ, поскольку он отображается внутри базы данных.
Когда я загружаю эти данные на свою локальную машину разработки OS X и локально запускаю db и Rails, я вижу представление изнутри БД (å... ƒ) в моем браузере, а не в качестве символа 元, как я вижу в постановке.
Отладка, которую я выполнил
Я гарантировал, что все заголовки Content-Type возвращаются как utf8 с каждого веб-сервера (локального, промежуточного).
Мой локальный сервер mysql и промежуточный сервер настроены на использование utf8 в качестве кодировки по умолчанию. Я использую "set names" utf8 "перед тем, как делать какие-либо вызовы.
Я даже могу подключиться к моему промежуточному db из моего хоста OS X Rails, и я все еще вижу символы å... ƒ, представляющие юань. Я предполагаю, что, возможно, проблема с моим локальным клиентом mysql, но я не могу понять, в чем проблема.
Возможно, это может дать ключ
Чтобы сделать его еще более запутанным, если я вставляю символ 元 в db на свой локальный компьютер, я вижу, что в веб-браузере отлично. --- YET, если я вставляю тот же самый символ в свою промежуточную db, я получаю? отметьте в нем место на странице с моего сайта Rails.
Кроме того, локально на моей машине OS X rails, если я использую "set names" latin1 '"перед моими запросами, все символы возвращаются должным образом. У меня эти таблицы были установлены как latin1 раньше - может это проблема?
Кто-то, пожалуйста, помогите мне здесь, я схожу с ума, пытаясь понять, что случилось!
