создаеться файл скриптом, впорос по кодировке создаваемого файла.

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

zagrenat

Гуру форума
Регистрация
26 Дек 2006
Сообщения
245
Реакции
68
вобщем етсь два хостинга,

один двиг и одна база клонированые
разница в базах заключается в
одна база в
MySQL-кодировка: Windows Cyrillic (cp1251)
и вторая в
MySQL-кодировка: UTF-8 Unicode (utf8)

Сопоставление соединения с MySQL: utf_unicod_ci и там и там.

все таблицы храняться в utf8_general_ci

есть скрипт который создает файл для я.маркета,

и проблемма.
там где MySQL-кодировка: Windows Cyrillic (cp1251) файл создаеться в cp1251 кодировке
а где UTF-8 Unicode (utf8)
соответсвенно в UTF-8 Unicode (utf8)

а нужно чтоб был тоже в cp 1251
.....

може конечно предисловие большое ) но в пхп нуб,
что попыталься сделать :
прописал к переменным
$w[name] = iconv("UTF-8", "CP1251", $w["name"]);

и кусок кода
PHP:
$myq="select cat_id, cat_name, parent_id FROM ".$prefix."category where is_show=1 order by parent_id, cat_id";
//echo $myq;
$a=mysql_query($myq); //выводим все разделы по очереди

$kol1=@mysql_numrows($a);
for($e=0; $e<$kol1; $e++)
{
	$w=mysql_fetch_array($a);
	$w[name]  = iconv("UTF-8", "CP1251", $w["name"]);//здесь был я кривыми ручками
	if ($w[parent_id]>0) {
		echo "<category id=\"$w[cat_id]\" parentId=\"$w[parent_id]\">$w[cat_name]</category>\n";
	}
	else
	{
	echo "<category id=\"$w[cat_id]\">$w[cat_name]</category>\n";
	}
	

}


где и что не так сделал ?
так как все равно файл отдаеться в


все спасибо -=Xardas=- помог )
 
попробуйте так:
PHP:
$myq="select cat_id, cat_name, parent_id FROM ".$prefix."category where is_show=1 order by parent_id, cat_id";
//echo $myq;
$a=mysql_query($myq); //выводим все разделы по очереди

$kol1=@mysql_numrows($a);
for($e=0; $e<$kol1; $e++)
{
	$w=mysql_fetch_array($a);
	if ($w[parent_id]>0) {
		$echovar .= "<category id=\"$w[cat_id]\" parentId=\"$w[parent_id]\">$w[cat_name]</category>\n";
	}
	else
	{
	$echovar .= "<category id=\"$w[cat_id]\">$w[cat_name]</category>\n";
	}
	

}
$echovar = iconv("UTF-8", "CP1251", $echovar);
echo $echovar;
 
PHP:
$a=mysql_query("SELECT 
`cat_id`, `cat_name`, `parent_id` 
FROM $prefix `category` 
WHERE `is_show`=1 
ORDER BY `parent_id`, `cat_id` "); //выводим все разделы по очереди

if (mysql_num_rows($a) > 0);
{
	$echovar=NULL;	
	while($w = mysql_fetch_assoc($a))
 	{ 
   	$p = $w['parent_id'] == 0 ? "parentId=$w['parent_id']" : NULL;
   	$echovar .= '< category id='.$w['cat_id'].$p.'>'.$w['cat_name'].'</category>';
 	}
 $echovar = iconv("UTF-8", "CP1251", $echovar);
  echo $echovar; 
}
Возможно ошибся в "parentId=$w['parent_id']" с кавычками ['parent_id']..проверьте
 
iconv() линуксовая функция не везде работает, восплоьзуйтесь лучше ее адаптированным аналогом
/* конвертируем с *** в *** */
$str = mb_convert_encoding($str, "***", "****");
 
Ага, а mb_* типа везде установлен :D
Да и медленнее она iconv().
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху