Хорватские диакритические знаки в MySQL db (utf-8) - PullRequest
3 голосов
/ 04 октября 2009

Диакритические знаки http://img98.imageshack.us/img98/3383/dijakritickiznakovi.gif

Таким образом, символы под заголовком должны отображаться таким образом.
Объекты UTF-8 перечислены под заголовком HTML (utf-8) (вот список: LINK )
И последняя строка показывает, что хранится в моей базе данных.
Сортировка таблицы БД: utf8_unicode_ci.
Я полагаю, что символы в БД не должны быть такими, как в моем случае? Они корректно отображаются на странице при загрузке из базы данных, но все они не отображаются таблицей utf-8 по данной ссылке. Даже если я правильно их вижу, может, кто-то другой не увидит?

Ответы [ 2 ]

4 голосов
/ 04 октября 2009

Настройка набора символов таблицы MySQL недостаточно - вам также следует позаботиться о том, чтобы установить правильный набор символов для клиента, соединения и результатов, значения по умолчанию могут отличаться от сервера к серверу, делая вашу базу данных менее переносимой: та же база содержимое может отображаться по-другому при перемещении на другой сервер.

Я уже некоторое время храню словенский текст в MySQL, и это то, что мне подходит:

  • первое, что вы должны сделать после подключения, это выполнить запрос " SET NAMES utf8 "
  • убедитесь, что строки, которые вы храните, для начала - utf-8: если вы берете их из формы веб-страницы, убедитесь, что страница UTF-8
  • будьте осторожны, какие инструменты вы используете для просмотра / редактирования содержимого базы данных онлайн: PhpMysqlAdmin определенно небезопасен.

Надеюсь, это поможет.

3 голосов
/ 04 октября 2009

Вы, похоже, пытаетесь сохранить строки в кодировке HTML в вашей базе данных. Не делайте этого, это только нарушит вашу способность выполнять строковые операции, такие как надежный поиск. Вы должны иметь возможность хранить необработанные символы в кодировке UTF-8 в виде байтов в вашей базе данных.

Вы не говорите, какую среду вы используете для чтения базы данных или как вы получаете «неправильную» строку внизу (то есть байты UTF-8, читаемые с использованием кодировки ISO-8859-1). Если они появляются на вашей веб-странице (и вы указываете UTF-8 в заголовках и / или теге <meta>), вы, вероятно, в значительной степени там.

...