Погода: -12°C
  • Колупаюсь на досуге с PHP и MySQL, возник затык с отображением кодировки UTF-8
    Имеем страницу с
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

    Отправляем данные в созданную таблицу MySQL и получаем на выходе то что на скрине.
    В браузере все отображается ОК.
    Параметры кодировки в phpmyadmin:
    Variable_name
    Value
    character_set_client cp1251
    character_set_connection cp1251
    character_set_database cp1251
    character_set_filesystem binary
    character_set_results cp1251
    character_set_server cp1251
    character_set_system utf8
    character_sets_dir /usr/local/share/mysql/charsets/


    Как привести текст к читабельному виду?

  • В ответ на: Отправляем данные в созданную таблицу MySQL
    В какой кодировке таблица и колонки таблицы?

    "show create table <ваша таблица>"

    Покажет что-то вроде:

    CREATE TABLE `misc` (
    `param` varchar(255) CHARACTER SET ascii COLLATE ascii_bin NOT NULL,
    `val` varbinary(2000) NOT NULL,
    PRIMARY KEY (`param`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8



    В ответ на: получаем на выходе то что на скрине.
    В ответ на: В браузере все отображается ОК.
    Взаимоисключающие параграфы или я что-то не понял.

    Исправлено пользователем IEEE (28.01.13 09:59)

  • и что в конфиге в $cfg['DefaultCharset'] написано?
    В зависимости от версии там или 'iso-8859-1' или 'utf-8'. Попробуйте поменять на 'windows-1251'?


  • CREATE TABLE `aliens_` (
    `first_name` varchar(30) DEFAULT NULL,
    `last_name` varchar(30) DEFAULT NULL,
    ...
    `other` varchar(100) DEFAULT NULL,
    `email` varchar(50) DEFAULT NULL
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8


    В принципе проблему решил подставляя эту строку после каждого соединения с mysql
    mysqli_set_charset($dbc, "utf8");


    Но хочется знать, существует ли более централизованное решение.

    Где посмотреть этот конфиг $cfg['DefaultCharset'] (я только начинаю изучать эту тему), база стоит на сервере хостера, у себя я пока локально ничего не устанавливал.

  • Если Вы хотите исправить phpMyAdmin, то в случае если он предоставлен хостером может быть проблематично. Можно попросить его поставить параметры character_set_client с cp1251 на utf8.

    Если Вы хотите исправить свое приложение, то решение Вы уже нашли.
    Выставить кодировку в подключении это нормальный подход.

  • Ок, спасибо :улыб:
    Я задавал вчера подобный вопрос хостеру, они ответили что подставлять данный код, самый простой вариант.

Записей на странице:

Перейти в форум

Модератор: