Ruby - драйвер mysql2, изменяющий кодировку / различные проблемы utf-8 - PullRequest
0 голосов
/ 31 декабря 2011

У меня работает API на Sinatra.Он запрашивает базы данных mysql и возвращает данные в формате json или xml.У меня проблема с данными Unicode.Если я запрашиваю производственную базу данных из консоли, я получу данные правильно:

persönlichen

Однако, в моих результатах API (или если бы я запрашивал базу данных в irb, используя gem mysql2), яПолучите это:

persönlichen

На моем блоке разработки все работает без сбоев, что мешает моим усилиям по решению проблемы.

Я сделал все, что мог, чтобы убедиться, что база данных работает.Только -8 (кодировки, параметры сортировки, наборы символов клиента и сервера - все utf-8).Я использую драйвер mysql2, который якобы заставляет все к utf-8.Я устанавливаю: encoding => 'UTF8' в моем активном подключении к записи.

Чего мне не хватает?

1 Ответ

2 голосов
/ 02 января 2012

Мне удалось решить проблему - данные не были правильно закодированы в базе данных. Я заполнил свою базу данных с помощью файла дампа sql - я добавил это в начало, и все отлично работало:

set names utf8;
create database if not exists `my_db_name` CHARACTER SET utf8 COLLATE utf8_general_ci;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...