Господа помогите есть гостевая книга НО проблема с кодировкой запись в CSVfile.txt происходит нормально но на хостнге английский текст выводит а русский текст не выводит вообще я понимаю что это проблема с кодировокой перепробовал не как не получается iconv() mb_convert_encoding() convert_cyr_string() подскжите как и что вставить и главное куда. PHP: if(!$_GET['i']) { $i=1; } else { $i=$_GET[i]; } $chislo=$chisloconfig; include "func.php"; $csv="CSVfile.txt"; $m=read($csv, "|"); echo "<br><br><br>"; if($m!=NULL) { krsort($m); foreach($m as $stroka) { $n++; if(($n>$i*$chislo-$chislo)&&($n<=$i*$chislo)) { $text = "$stroka[5]"; $newtext = wordwrap($text, 20, " ", 1); echo "<b> $stroka[1]</b> $stroka[2]<br> <b>e-mail: </b><a href='mailto:$stroka[3]' target='_blank'>$stroka[3]</a> <b>сайт: </b><a href='http://$stroka[4]' target='_blank'>$stroka[4]</a><br> <table border='1'bordercolor='#000000' width='$colsconfiga' height='$rowsconfiga' bgcolor='$tbcolor'><tr><td valign='top'>$newtext</td></tr><table><br><br>"; } } echo "Колличество записей: $n<br>"; } echo "<center><p>"; for($k=1; $k<=$n/$chislo+1; $k++) { if($k==$i) { echo "<b>$k</b>"; } else { echo "<a href='guest.php?i=$k'><b>$k</b></a>"; } } echo "</p></center>";
Проверить, что сам файл в кодировке utf-8. Отсылать header content-type с указание кодировки utf. Одна из лучших библиотек для работы с многобайтными кодировками - iconv Если не получается - курить ман. http://www.php.ru/manual/ref.iconv.html
на сайте стоит <meta http-equiv="Content-Type" content="text/html; charset=windows-1251"> если поставить <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> тогда ни сайт ни гостевая не работает
скрипт мой на локалке работает нормально, а я ставлю его знакомым на сайт на хостинге, и вот заморчки
mihai была как-то похожая история с одним хостером. везде все облазил, где только можно выставил UTF-8. (.htacces, тэмплейты/html, коннекты). Кончилось тем, что обратился к саппорту хостера с вопросом: wtf, через 10 минут все было.
Господа программисты помагите. формулирую проблему ещё раз Есть скрипт гостевой книги, на локалке всё работает хорошо, работаю в Notepade сохранил все файлы UTF-8 Format - Convert UTF-8 при открытии файла в Notepade показывает Encode in UTF-8 НО НА ХОСТИНГЕ русский текст вообще не отображается написал хостеру хостер говорит что сайт в UTF-8 а что у меня запись в CSVfile.txt произведена в windows-1251 ЧТО ДЕЛАТЬ как сделать чтобы русский текст отображался --------- вот код формируем строку ниже скрипт записи "blok.php"; PHP: $strok="| -".strip_tags($imja)."|".$data."|".strip_tags($email)."|".strip_tags($url)."|". strip_tags($text).".|<<end topik>>"; $strok=$strok.chr(13).chr(10); include "blok.php"; blokir($csv, $strok); ========================= <? function blokir($myfile, $zap) { if($fl=fopen($myfile, "a")) { for($j=0; $j<10; ++$j) { if (flock($fl, LOCK_EX)) break; else sleep(1); } fwrite($fl,$zap); flush($fl); flock($fl, LOCK_UN); fclose($fl); return true; } else { return false; } } ?>
Уважаемый Simpliest, а почему Код (Text): $code_pages="windows-1251"; $msg=iconv("utf-8", $code_pages, $msg); не работает? функция iconv возвращает пустую строку.
Нашел сам проблему. Изначально на странице текст присваивался переменной, затем она передавалась на другую страницу... php текст приводит в таком случае в кодировку utf-8. затем я решил весь текст вынести в один файл и на месте текста оказалась переменная. После этого iconv("utf-8", $code_pages, $msg) перестала работать. Если эту функцию убрать, то с кодировкой тоже какие-то проблемы зато все работает если сделать не $msg=$msg_goods_add; а $msg=iconv( $code_pages, "utf-8", $msg_goods_add);