Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Проблема с кодировкой при записи в БД 
:(
    Опции темы
Rodman
Дата 31.1.2013, 10:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


CIO
****


Профиль
Группа: Участник
Сообщений: 6144
Регистрация: 7.5.2006
Где: Ukraine ⇛ Kyiv ci ty

Репутация: нет
Всего: 122



Дароф

моя задача выудить со страницы (html) таблицу (<table>) и ее залить в таблицу (БД) (в заданное поле).

Код

<?php
            $HOST = 'localhost';
       $USER = '';
       $PASS = '';
       $DB   = '';

        $table = "wgl";
        mysql_connect($HOST, $USER, $PASS) or die ("Не могу создать соединение");
        mysql_select_db($DB) or die (mysql_error());
        //вытягиваю таблицу из HTML
        $table = array();

        $html = utf8_encode(file_get_contents('http://www.lotto.be/FR/Jouer_et_Gagner/Jeux_de_tirage/Keno/Comment_jouer/default.aspx'));
        preg_match_all("/<table.*?>.*?<\/[\s]*table>/s", $html, $table_html);

        $res = $table_html[0][2];
        //делаю некоторые изменения в дизайне
        $res = str_replace('align="middle"', 'align="middle" bgcolor="#800000" ', $res);
        $res = str_replace('#CCCCCC"', '#333333" style="color:white"', $res);
        $res = str_replace('col width="19"', 'col width="19" bgcolor="#800000"', $res);
        $res = str_replace('chance 1/', '<nobr>chance 1/</nobr>', $res);
        $res = str_replace("\n", "", $res);
        $res = str_replace("\t", "", $res);
        $query = "update ".$table." set last_win='".$res."' where id = 1239;";

        $res_query = mysql_query($query);
        //отправляю письмо о проделанной работе
        $to      = '[email protected]';
        $subject = 'Обновил';
        $message = $res;
        $headers = 'From: [email protected]' . "\r\n" .
          'Reply-To: [email protected]' . "\r\n" .
          'X-Mailer: PHP/' . phpversion();
        mail($to, $subject, $message, $headers);
        $table_html = $res;

        print_r($table_html);
?>


Так вот таблица нормально вытягивается. Но вот когда данные попадают в таблицу, они без проблем записываются.. но потом, когда скрипты выбирает эти данные и выводит пользователю. Так при выводе - выводятся каракули (см. вложение).

Я так понимаю где то необходимо перевести данные в другую кодировку.

Но как? подскажите пожалуйста

Спасибо

Присоединённый файл ( Кол-во скачиваний: 7 )
Присоединённый файл  Result.png 30,79 Kb
PM MAIL WWW Skype GTalk YIM MSN   Вверх
MoLeX
Дата 31.1.2013, 10:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Местный пингвин
****


Профиль
Группа: Модератор
Сообщений: 4076
Регистрация: 17.5.2007

Репутация: 46
Всего: 140



все зависит от того какая кодировка у тебя. 


--------------------
Amazing  smile 
PM MAIL WWW ICQ   Вверх
Rodman
Дата 31.1.2013, 11:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


CIO
****


Профиль
Группа: Участник
Сообщений: 6144
Регистрация: 7.5.2006
Где: Ukraine ⇛ Kyiv ci ty

Репутация: нет
Всего: 122



я php файл сохранил в UTF8...
поначалу он был ANSI... 

но после того как я увидел, что он записует в БД каракули.. пересохранил в UTF8 (в PHP Expert Editor есть два режима UTF8... пробовал оба) - результат "Немного другие каракули"

или за какую кодировку уточнение?
PM MAIL WWW Skype GTalk YIM MSN   Вверх
MoLeX
Дата 31.1.2013, 11:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Местный пингвин
****


Профиль
Группа: Модератор
Сообщений: 4076
Регистрация: 17.5.2007

Репутация: 46
Всего: 140



скажи вот эти кодировки:
1. БД
2. Скрипт который получает контент
3. Скрипт который выводит контент

и меня очень сильно смущает вот это - utf8_encode
Цитата

utf8_encode — Encodes an ISO-8859-1 string to UTF-8


С этого сайта (.lotto.be/FR/Jouer_et_Gagner/Jeux_de_tirage/Keno/Comment_jouer/default.aspx) данные и так идут в UTF-8


--------------------
Amazing  smile 
PM MAIL WWW ICQ   Вверх
Rodman
Дата 31.1.2013, 12:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


CIO
****


Профиль
Группа: Участник
Сообщений: 6144
Регистрация: 7.5.2006
Где: Ukraine ⇛ Kyiv ci ty

Репутация: нет
Всего: 122



1. utf8_general_ci (вложил скрин - Table.png)
2. Имеется ввиду исходный код HTML? или что?
3.1 Сделал скрин который получается если есть функция utf8_encode (utf8_encode.png)
3.2 Сделал скрин который получается если нет функции  utf8_encode (no_utf8_encode.png)


Присоединённый файл ( Кол-во скачиваний: 1 )
Присоединённый файл  screens.rar 79,75 Kb
PM MAIL WWW Skype GTalk YIM MSN   Вверх
Sanchezzz
Дата 31.1.2013, 16:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1670
Регистрация: 19.11.2006
Где: Voronezh

Репутация: 41
Всего: 60



1 После выбора БД выполните запрос
Код

mysql_query('SET NAMES utf8');

2 Сохраните файл  в Utf8+BOM(PHPExpertEditor) или Utf8 Без BOM (nootepad++)
3 Если используется апач укажите явно в .htaccess 
Код

 AddDefaultCharset utf-8

Если используется ngnix как сервер
Код

server {
...
  charset utf-8;
...
}

Или в самом скрипте до вывода любых данных 
Код

<?php header('Content-Type: text/html; charset=utf-8'); ?>



--------------------
Понравился ответ "+" по репе, не забываем закрывать тему, заказы в LS.
PM MAIL Skype GTalk   Вверх
Rodman
Дата 1.2.2013, 13:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


CIO
****


Профиль
Группа: Участник
Сообщений: 6144
Регистрация: 7.5.2006
Где: Ukraine ⇛ Kyiv ci ty

Репутация: нет
Всего: 122



Sanchezzz, сделал все рекомендации. ЗАРАБОТАЛО...

Не стал уже проверять какая рекомендация подействовала...

Спасибо
PM MAIL WWW Skype GTalk YIM MSN   Вверх
Sanchezzz
Дата 1.2.2013, 14:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1670
Регистрация: 19.11.2006
Где: Voronezh

Репутация: 41
Всего: 60



1 и 2рая...


--------------------
Понравился ответ "+" по репе, не забываем закрывать тему, заказы в LS.
PM MAIL Skype GTalk   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0505 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.