Мобильная версия форумов
Открыть
 −4°C
завтра: −13°C
Погода в Перми
−4°C
днем−3°C
вечером−3°C
завтра−13°C
Подробно
 66,70
+0.1615
Курс USD ЦБ РФна 16 февраля
66,7044
+0.1615
 75,25
+0.2021
Курс EUR ЦБ РФна 16 февраля
75,2492
+0.2021
  • guru

    Сообщений: 4281

    Дано:
    внутренний (свой апач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

  • veteran

    Сообщений: 2300

    Перекодировать таблицы можно двумя запросами:
    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г.

  • guru

    Сообщений: 4281

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

    Non solum oportet, sed etiam necessese est

  • veteran

    Сообщений: 2300

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

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

  • guru

    Сообщений: 4281

    ринет =)

    Non solum oportet, sed etiam necessese est

  • veteran

    Сообщений: 2300

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

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

  • guru

    Сообщений: 4281

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

    Non solum oportet, sed etiam necessese est

  • activist

    Сообщений: 277

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

  • guru

    Сообщений: 4281

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

    Non solum oportet, sed etiam necessese est

  • guru

    Сообщений: 4281

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

    Non solum oportet, sed etiam necessese est

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

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

Модератор: