2016-02-28 2 views
0

Я использую mysql DB. БД представляет собой базу данных RDS АМАЗОН.character_result_set пуст в mysql

Когда я выполнить этот запрос: show global variables like '%character%'; я получаю следующий результат: enter image description here

Но когда я выполнить этот запрос: show variables like '%character%'; я получаю этот результат: enter image description here

Как вы можете видеть character_set_results пусто , Я попытался выполнить следующие запросы и ничего не изменил пустую величину:

ALTER DATABASE myDB CHARACTER SET utf8; 
ALTER DATABASE myDB CHARACTER SET utf8 COLLATE utf8_general_ci; 
ALTER DATABASE myDB DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci; 
SET CHARACTER_SET_RESULTS=UTF8 
SET NAMES 'utf8'; 
SET CHARACTER SET 'utf8'; 
SET session CHARACTER_SET_RESULTS = utf8; 

Как я понимаю, второй запрос возвращает параметры сеанса. Может ли это повлиять на результаты, которые я получаю?

У меня есть две машины. Машина разработки, где я запускаю приложение с eclipse (это приложение java с hibernate), а другое - машина развертывания. Все работает отлично на машине разработки, но на машине развертывания иногда я получаю ???? или других странных символов при получении данных из БД. Обе машины подключаются к одному и тому же БД, и данные хранятся в самой базе данных. Также URL-адрес подключения: jdbc:mysql://myDB:3306/myApp?autoReconnect=true&useUnicode=true&createDatabaseIfNotExist=true&characterEncoding=utf-8.

Любые идеи, что может вызвать это?

ответ

0

Несколько вопросительных знаков, как правило, приходят из:

  • Вы INSERTing китайский (или любой текст, не вестерн-Европа).
  • Вы сказали SET NAMES utf8, чтобы заявить, что байты клиента являются utf8-кодированными (правильными).
  • Но столбцы таблицы объявлены CHARSET latin1. < - В этом проблема.
  • Поскольку невозможно преобразовать китайские символы в latin1, '?' сохраняются.

Просьба представить SHOW CREATE TABLE для подтверждения вышеуказанной гипотезы.

Если вы получаете «другие странные символы», пожалуйста, укажите:

SELECT col, HEX(col) FROM ... 

, чтобы показать пример того, что хранится в «странных символов».

Смежные вопросы