Различная кодировка символов хранится в моей базе данных - PullRequest
0 голосов
/ 12 октября 2011

У меня неприятная проблема с кодировкой символов и я ищу идеи, как ее решить.

В течение последних лет я поддерживал базу данных в формате latin1_swedish_ci.Все работало просто отлично.При проверке varchars в PHPMyAdmin я мог видеть такие акценты, как ë, а во внешнем интерфейсе они отображались правильно.

Теперь недавно я переключил свое приложение на UTF-8.Я также установил кодировку символов моей HTML-страницы в UTF-8, но не в свою базу данных.Проблемы начали всплывать.Иногда символы правильно закодированы, иногда нет.

Реальность такова, что сохраненные в последнее время varchars выглядят нормально, старые varchars (до перехода на UTF-8) отображаются в виде черных квадратов.Если я переключаю кодировку символов моей страницы на ISO8859-1, происходит обратное.Старые специальные символы отображаются нормально, новые специальные символы отображаются в виде черных квадратов.

Таким образом, реальность такова, что моя база данных хранит специальные символы, отличные от ранее.Как я могу убрать этот беспорядок, не ломая вещи?

1 Ответ

1 голос
/ 12 октября 2011

Вы можете попробовать что-то вроде:

$string = iconv("UTF-8", "ISO-8859-1//TRANSLIT", $string);

или

$string = iconv("ISO-8859-1", "UTF-8//TRANSLIT", $string);

и посмотреть, изменится ли закодированный символ.

...