Не чинить то, что не сломано - PullRequest
1 голос
/ 04 марта 2012

Я сделал код, который хранит utf-8 в базе данных.

Хорошо показывает это в браузере, но выглядит искаженным в базе данных.Поскольку функциональность, кажется, работает, и, похоже, у меня не было проблем с обработкой строкового ввода, есть ли смысл «исправлять то, что не сломано» и создавать в базе данных символы utf-8, подобные японскому,?1003 *

Я не ищу в базе данных, так как строки все равно сериализуются.

Ответы [ 2 ]

1 голос
/ 04 марта 2012

Вы должны указать кодировку текста запросов, которые вы отправляете в MySQL, например,

SET NAMES `utf8` COLLATE `utf8_unicode_ci`

Если вы этого не сделаете, MySQL может интерпретировать ваш запрос с помощью текстовой кодировки сервера по умолчанию, которая может отличаться от UTF-8, например. ISO-Latin. Поэтому в ваших таблицах будут строки, закодированные в кодировке UTF-8, но MySQL пометил их как iso-latin. Это не сильно повлияет на ваш код, потому что MySQL просто возвращает вам строки UTF-8 и вы игнорируете кодировку текста. Если вы просматриваете данные в phpMyAdmin или любом другом приложении, которое устанавливает кодировку символов соединений, вы получите искаженные строки.

С другой стороны, вы можете utf8_decode строки запроса и utf8_encode результат, предоставленный MySQL, и не изменять кодировку текста соединений с iso-latin. но если вы запросите другой сервер MySQL, который использует UTF-8 в качестве кодировки текста по умолчанию, вы столкнетесь с той же проблемой, наоборот. поэтому просто установите кодировку текста подключения один раз после подключения.

0 голосов
/ 04 марта 2012

Что вы используете для доступа к базе данных. Если вы используете консоль, просто введите кодировку в консоли для utf-8. Если вы используете программное обеспечение с графическим интерфейсом, просто проверьте параметры, установите кодировку utf-8. Вы можете попробовать «установить имена» для проверки клиентской кодировки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...