Текст в базе данных MySQL кодируется в формате ISO-8859-1 (латиница), но должен быть в формате UTF-8. - PullRequest
1 голос
/ 01 февраля 2012

У меня есть таблица mysql, которая заполнена текстом в латинской кодировке.Я знаю это, потому что, хотя у меня есть таблица, определенная в кодировке UTF-8, и отправленные заголовки установлены в UTF-8, я получаю уродливый вопросительный знак в черном ромбе.Единственный способ обеспечить правильное отображение моих данных - это поменять заголовки на использование кодировки ISO-8859-1.

Я испробовал все предложения, которые я могу найти в SO и в сети,но пока ничего не получалось.

Я пытался сделать так, как предлагает этот автор: https://stackoverflow.com/a/5232411/102067,, но, несмотря на то, что мне удалось правильно прочитать файл с помощью программы чтения текста, он не отображался.правильно на сайте.

Я в полной растерянности и открыт для предложений относительно того, как решить эту проблему.

Спасибо.

1 Ответ

1 голос
/ 01 февраля 2012

Я наконец-то нашел ответ благодаря предложению @ deceze .

Для тех, у кого возникла та же проблема, вот что я сделал ...

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

С этим дополнительным параметром мое соединение теперь выглядит так:

$pdo = new PDO('mysql:dbname=encoding_test;host=localhost', 'user', 'pass',
            array(PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8'));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...