9°C
завтра: 11°C
Погода в Перми
9°C
утром8°C
днем11°C
завтра11°C
Подробно
 63,83
−0.6439
Курс USD ЦБ РФна 17 сентября
63,8272
−0.6439
 70,67
−0.8612
Курс EUR ЦБ РФна 17 сентября
70,6695
−0.8612
  • Дано:
    внутренний (свой апач2) веб-проект пхп5+мускул, все работает в utf-8 (кодировка страниц и выдаваемый контент).
    внешний веб-проект (у хостера) та же самая связка, с одним единственным уточнением - все в cp1251.
    База и там и там в кодировке cp1251 хранится, но в локальном проекте после коннектом выполнятеся "set names utf8" и все замечательно по русски отображается/апдейтится, выдавая в браузер странички в utf8.

    Есть задача "синхронизации" баз данный проектов - часть данных локального проекта должна select'ом выбиратся и insert'ом вставлятся на удаленный mysql-сервер. Сам код есть, и он работает, однако судя по всему удаленный (внешний) sql-сервер ожидает данных в кодировке cp1251.

    Собственно проблема - как именно (желательно полную строчку привести) я должен подключатся к mysql-базе для того, чтобы общатся с ней в кодировке utf8?

    код следующий в данный момент:

    if(!($rem_db_link=mysql_connect(REMOTE_DB_HOST, REMOTE_DB_LOGIN, REMOTE_DB_PASSWORD)))
    {
    echo "<font color=\"red\"><b>Нет соединения с БД сайта</b></font>";
    @ftp_quit($ftp_link);
    return false;
    }
    if(!mysql_select_db(REMOTE_DB_NAME, $rem_db_link))
    {
    echo "<font color=\"red\"><b>Нет соединения с БД сайта</b></font>";
    @mysql_close($rem_db_link);
    @ftp_quit($ftp_link);
    return false;
    }

    простое
    mysql_query("set names utf8",$rem_db_link)
    не помогает - такое чувство что на той стороне это просто игнорируется. Есть ли вариант при коннекте б БД из php указать кодировку?(наименьший гимор) Или кроме как перекодировки страниц локального проекта в cp1251 нет способов? (наибольший гимор)

    Существуют ли функции (и какие) конвертации cp1251 в utf8 и обратно и как это сделать проще/правильнее? (средней гиморности вариант - "вручную" перекодировать запрос/результаты запроса).

    В php не силен, просьба не пинать эсли это элементарность =)

    Non solum oportet, sed etiam necessese est

  • Перекодировать таблицы можно двумя запросами:
    ALTER TABLE $table_name CONVERT TO CHARACTER SET binary
    и
    ALTER TABLE $table_name CONVERT TO CHARACTER SET utf8

    Только у всех полей VARCHAR типа сменится на VARBINARY, это на некоторых функциях отразится может потом (типа locate или ucase).
    А вообще-то SET NAMES UTF8 должен прекрасно отрабатывать.

    Nissan Presage, U-30, KA24DE, 00г.
    Nissan Lafesta, 10г.

  • перекодировать а удаленной базе неполучится - гимору ооочень много. ну чтож - будем разбиратся с провайдером видимо.

    Non solum oportet, sed etiam necessese est

  • А чего за провайдер? У меня были проблемы с одним примерно такого свойства.

    Nissan Presage, U-30, KA24DE, 00г.
    Nissan Lafesta, 10г.

  • ринет =)

    Non solum oportet, sed etiam necessese est

  • Беги оттэда:) Мало того, что цены конские, так еще и софт на виртуал-хосте глюкавый. И разбираться не хотят.
    Мы год назад благополучно ушли к другому провайдеру, где цена в 10(!) раз была ниже за гораздо больший объем услуг.

    Nissan Presage, U-30, KA24DE, 00г.
    Nissan Lafesta, 10г.

  • Дык это время. Которого как обычно нет )) Вопрос уже поднялся конечно, но вопрос щас не в этом - нужно "подружить" базы и скрипты раньше, чем уедет хостинг, ибо это, как мне кажется будет еще не скоро, и это очень большое горе =))

    Non solum oportet, sed etiam necessese est

  • посмотрите на предмет процедуры setlocale

  • я нуб в php - можно подробнее, как и куда ее вставить нужно?

    Non solum oportet, sed etiam necessese est

  • проблема решилась переконвертацией проекта в 1251 - у хостера мускул версии 3.23.50 не поддерживал локаль утф-8.

    Non solum oportet, sed etiam necessese est

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

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

Модератор: