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

Статус
В этой теме нельзя размещать новые ответы.

OledJAH

Читатель
Заблокирован
Регистрация
3 Фев 2008
Сообщения
124
Реакции
27
  • Автор темы
  • Заблокирован
  • #1
Всем привет. Тут у меня такая беда...

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

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

пс. Все предыдущие темы по этому поводу не помогли.
 
Если редко импортируешь прайс, то проще в каком-либо текстовом редакторе изменить его кодировку в ту, в которой создана БД магазина. Например, это позволяет сделать в два клика текстовый редактор 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"];
 
  • Автор темы
  • Заблокирован
  • #3
Спасибо помощь. Не помогло. Я и прайс помощью укелпад сохранил в кодировке "1251 ANSI кирилица" там cp1251 не было. По второму способу - можешь сказать где это файл находится - попробую так.
 
Ищи _importProduct() в файле core_functions/catalog_import_functions.php
 
  • Автор темы
  • Заблокирован
  • #5
Я тут еще заметил кое что. При любых изменениях летит кодировка. К пример поправить тайтл хотел - замениил одно слово - полетела кодировка во всем тайтле. Значит скрипт любое мое изменение передает в не правильной кодировке... есть какой-то главный файл в котором можно принудить срипт все записи в БД делать в cp1251?! Может connect.inc если да то что туда писать?
 
Похоже проблема в самом блокноте, я в екселе сделал макрос который по комбинации клавиш в цсв кидает и всё ок,
в db_connect прописал строку db_query('SET NAMES cp1251;'); но это скорее на всякий случай.
 
У меня изменена функция 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;
}
 
  • Автор темы
  • Заблокирован
  • #8
:yahoo:
У меня изменена функция 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;
}

Во красавчик) Спасибо тебе )) Помогло)
:ay:
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху