Летит кодировка при импорте прайса

Тема в разделе "Shop-script", создана пользователем OledJAH, 28 июл 2008.

Статус темы:
Закрыта.
  1. OledJAH

    OledJAH Читатель

    Заблокирован
    Регистр.:
    3 фев 2008
    Сообщения:
    124
    Симпатии:
    26
    Всем привет. Тут у меня такая беда...

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

    Но тут надо было загрузить поновой прайс... в итоге все с тайтлами итд все впорядке а вот сама инфа про товар загрузилась вопросиками. Как решать? Я так понял надо указать скрипту в какой кодировке загружать прайс - но вот как не знаю. Помогите:bc:

    пс. Все предыдущие темы по этому поводу не помогли.
     
  2. mariohs

    mariohs Постоялец

    Регистр.:
    1 май 2008
    Сообщения:
    115
    Симпатии:
    94
    Если редко импортируешь прайс, то проще в каком-либо текстовом редакторе изменить его кодировку в ту, в которой создана БД магазина. Например, это позволяет сделать в два клика текстовый редактор AkelPad, входящий в состав Total Commander от SamLab.

    Второй способ: использовать функцию iconv() в функции _importProduct(). Например, если у тебя файл в кодировке КОИ-8, а база - в виндовс-1251:
    Код:
    		if ( strcmp($dbc["description"], "not defined") )
    			$description = iconv("KOI8-R","CP1251", $row[ $dbc["description"] ]);
    		else $description = $rowdb["description"];
    		if ( strcmp($dbc["brief_description"], "not defined") )
    			$brief_description = iconv("KOI8-R","CP1251", $row[ $dbc["brief_description"] ]);
    		else $brief_description = $rowdb["brief_description"];
     
    OledJAH нравится это.
  3. OledJAH

    OledJAH Читатель

    Заблокирован
    Регистр.:
    3 фев 2008
    Сообщения:
    124
    Симпатии:
    26
    Спасибо помощь. Не помогло. Я и прайс помощью укелпад сохранил в кодировке "1251 ANSI кирилица" там cp1251 не было. По второму способу - можешь сказать где это файл находится - попробую так.
     
  4. mariohs

    mariohs Постоялец

    Регистр.:
    1 май 2008
    Сообщения:
    115
    Симпатии:
    94
    Ищи _importProduct() в файле core_functions/catalog_import_functions.php
     
    OledJAH нравится это.
  5. OledJAH

    OledJAH Читатель

    Заблокирован
    Регистр.:
    3 фев 2008
    Сообщения:
    124
    Симпатии:
    26
    Я тут еще заметил кое что. При любых изменениях летит кодировка. К пример поправить тайтл хотел - замениил одно слово - полетела кодировка во всем тайтле. Значит скрипт любое мое изменение передает в не правильной кодировке... есть какой-то главный файл в котором можно принудить срипт все записи в БД делать в cp1251?! Может connect.inc если да то что туда писать?
     
  6. alexander-x

    alexander-x Постоялец

    Регистр.:
    20 май 2007
    Сообщения:
    130
    Симпатии:
    26
    Похоже проблема в самом блокноте, я в екселе сделал макрос который по комбинации клавиш в цсв кидает и всё ок,
    в db_connect прописал строку db_query('SET NAMES cp1251;'); но это скорее на всякий случай.
     
  7. mariohs

    mariohs Постоялец

    Регистр.:
    1 май 2008
    Сообщения:
    115
    Симпатии:
    94
    У меня изменена функция db_connect в файле includes/database/mysql.php:

    Код:
    function db_connect($host,$user,$pass) //create connection
    {
    	$r = mysql_connect($host,$user,$pass);
    	if(preg_match('/^5\./',mysql_get_server_info($r)))db_query('SET SESSION sql_mode=0');
        mysql_query ("set character_set_client='cp1251'");
        mysql_query ("set character_set_results='cp1251'");
        mysql_query ("set collation_connection='cp1251_general_ci'");
    	return $r;
    }
     
    materiya, ndmitry и OledJAH нравится это.
  8. OledJAH

    OledJAH Читатель

    Заблокирован
    Регистр.:
    3 фев 2008
    Сообщения:
    124
    Симпатии:
    26
    :yahoo:
    Во красавчик) Спасибо тебе )) Помогло)
    :ay:
     
Статус темы:
Закрыта.