В базе данных мне придется хранить имена и тому подобное в UTF8, а хэши в latin1_bin.Я позвонил SET NAMES utf8
, но заметил, что это повредило поля latin1, когда я попытался их прочитать (я смог написать их очень хорошо).Что странно, поскольку, если я правильно понял, этот запрос только о отправке данных на сервер, а не получении этого.
phpMyAdmin также отображает поврежденные данные.*
Любая подсказка о том, что я могу делать неправильно?
(используя MAMP 1.9.6)
edit: этот ответ указывает, что это также используемая кодировкаотправить данные обратно клиенту.Я запутался: какой смысл указывать кодировку столбца, если он все равно будет проигнорирован?
edit: отрывок из определения столбца:
`tok` char(64) CHARACTER SET latin1 COLLATE latin1_bin NOT NULL,
`sal` char(16) CHARACTER SET latin1 COLLATE latin1_bin NOT NULL,
...
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_roman_ci ;
отрывок из запросов:
SELECT tok,sal FROM user WHERE id=4 LIMIT 1
.
INSERT INTO user (tok, sal) VALUES (x'1387ea0c22277d3000bd23241c357e3a9ba45a2e28f50581d63a73bf785a7458a95cca4de27d0a86588f5bdfa94415d6a255c2c0379ebc2f00dacba03ae6b866', x'8fca28a592c29f245ff0a3ba5f97420c')