2016-04-08 6 views
0

У меня есть база данных MySql. Таблицы в нем определены с помощью DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci. Однако данные в таблицах кажутся ошибочными.Проблема с кодировкой JSON MySql

SELECT json_object('x', textfield) AS test FROM MyTable LIMIT 1;

+-----------------------------+ 
| test      | 
+-----------------------------+ 
| {"x": "This isn’t right"} | 
+-----------------------------+ 

Как преобразовать текст в таблицу в правильном кодировании?

ответ

0

кракозябры

  • Байты у вас есть в клиенте правильно закодированы в utf8 (хорошо).
  • Вы связались с SET NAMES latin1 (или set_charset('latin1') или ...), вероятно, по умолчанию. (Должно быть utf8.)
  • Столбец в таблицах может быть или не быть CHARACTER SET utf8, но это должно быть так. (Вы говорите, что они были.)

Каков твой клиент? Если это «средство командной строки mysql» (как представляется,), после подключения выполните SET NAMES utf8.

После этого, если isn’t выдается как isn?t, см. my blog.