За последние 24 часа нас посетили 18975 программистов и 1635 роботов. Сейчас ищут 835 программистов ...

кодировка

Тема в разделе "PHP для новичков", создана пользователем mihai, 11 дек 2009.

  1. mihai

    mihai Активный пользователь

    С нами с:
    17 мар 2009
    Сообщения:
    40
    Симпатии:
    0
    Господа
    помогите
    есть гостевая книга
    НО
    проблема с кодировкой
    запись в CSVfile.txt
    происходит нормально
    но
    на хостнге английский текст выводит а русский текст не выводит вообще
    я понимаю что это проблема с кодировокой

    перепробовал не как не получается

    iconv()
    mb_convert_encoding()
    convert_cyr_string()

    подскжите как и что вставить и главное куда.



    PHP:
    1.  
    2.  
    3.  
    4. if(!$_GET['i'])
    5. {
    6. $i=1;
    7. }
    8. else
    9. {
    10. $i=$_GET[i];
    11. }
    12. $chislo=$chisloconfig;
    13. include "func.php";
    14. $csv="CSVfile.txt";
    15. $m=read($csv, "|");
    16.      
    17. echo "<br><br><br>";
    18.  
    19. if($m!=NULL)
    20. {
    21. krsort($m);
    22. foreach($m as $stroka)
    23. {
    24. $n++;
    25. if(($n>$i*$chislo-$chislo)&&($n<=$i*$chislo))
    26. {
    27.  
    28. $text = "$stroka[5]";
    29. $newtext = wordwrap($text, 20, " ", 1);
    30. echo "<b>&nbsp;$stroka[1]</b>&nbsp;&nbsp;&nbsp;$stroka[2]<br>
    31.      <b>e-mail:&nbsp;</b><a href='mailto:$stroka[3]' target='_blank'>$stroka[3]</a>
    32.      <b>сайт:&nbsp;</b><a href='http://$stroka[4]' target='_blank'>$stroka[4]</a><br>
    33.      <table border='1'bordercolor='#000000' width='$colsconfiga' height='$rowsconfiga' bgcolor='$tbcolor'><tr><td valign='top'>$newtext</td></tr><table><br><br>";
    34.  
    35. }
    36. }
    37. echo "Колличество записей: $n<br>";
    38. }
    39. echo "<center><p>";
    40.  
    41.  
    42.  
    43. for($k=1; $k<=$n/$chislo+1; $k++)
    44. {
    45. if($k==$i)
    46. {
    47. echo "<b>$k</b>";
    48. }
    49. else
    50. {
    51. echo "<a href='guest.php?i=$k'><b>$k</b></a>";
    52. }
    53. }
    54. echo "</p></center>";
    55.  
     
  2. admyx

    admyx Активный пользователь

    С нами с:
    14 мар 2008
    Сообщения:
    2.159
    Симпатии:
    1
    Проверить, что сам файл в кодировке utf-8.
    Отсылать header content-type с указание кодировки utf.

    Одна из лучших библиотек для работы с многобайтными кодировками - iconv
    Если не получается - курить ман.
    http://www.php.ru/manual/ref.iconv.html
     
  3. mihai

    mihai Активный пользователь

    С нами с:
    17 мар 2009
    Сообщения:
    40
    Симпатии:
    0
    на сайте стоит
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1251">

    если поставить
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">

    тогда ни сайт ни гостевая не работает
     
  4. amen

    amen Активный пользователь

    С нами с:
    18 сен 2009
    Сообщения:
    298
    Симпатии:
    0
    Адрес:
    Узбекистан
    А если в корень поставить .htaccess, записав туда
    AddDefaultCharset UTF-8
     
  5. mihai

    mihai Активный пользователь

    С нами с:
    17 мар 2009
    Сообщения:
    40
    Симпатии:
    0
    не ни каких изменений
     
  6. obsrv

    obsrv Активный пользователь

    С нами с:
    2 окт 2008
    Сообщения:
    238
    Симпатии:
    0
    Адрес:
    Санкт-Петербург
    сайт на локалке или у хостера?
     
  7. mihai

    mihai Активный пользователь

    С нами с:
    17 мар 2009
    Сообщения:
    40
    Симпатии:
    0
    скрипт мой на локалке работает нормально,
    а я ставлю его знакомым на сайт на хостинге,
    и вот заморчки
     
  8. obsrv

    obsrv Активный пользователь

    С нами с:
    2 окт 2008
    Сообщения:
    238
    Симпатии:
    0
    Адрес:
    Санкт-Петербург
    mihai
    была как-то похожая история с одним хостером.
    везде все облазил, где только можно выставил UTF-8. (.htacces, тэмплейты/html, коннекты).
    Кончилось тем, что обратился к саппорту хостера с вопросом: wtf, через 10 минут все было.
     
  9. mihai

    mihai Активный пользователь

    С нами с:
    17 мар 2009
    Сообщения:
    40
    Симпатии:
    0
    Господа программисты помагите.
    формулирую проблему ещё раз

    Есть скрипт гостевой книги,
    на локалке всё работает хорошо,

    работаю в Notepade
    сохранил все файлы UTF-8

    Format - Convert UTF-8

    при открытии файла в Notepade

    показывает

    Encode in UTF-8

    НО

    НА ХОСТИНГЕ

    русский текст вообще не отображается
    написал хостеру
    хостер говорит
    что сайт в UTF-8
    а
    что у меня запись в CSVfile.txt
    произведена
    в windows-1251

    ЧТО ДЕЛАТЬ
    как сделать чтобы русский текст отображался

    ---------
    вот код
    формируем строку

    ниже скрипт записи "blok.php";
    PHP:
    1.  
    2.  
    3. $strok="| -".strip_tags($imja)."|".$data."|".strip_tags($email)."|".strip_tags($url)."|".
    4. strip_tags($text).".|<<end topik>>";
    5. $strok=$strok.chr(13).chr(10);
    6.  
    7. include "blok.php";
    8. blokir($csv, $strok);
    9.  
    10. =========================
    11.  
    12. <?
    13. function blokir($myfile, $zap)
    14. {
    15. if($fl=fopen($myfile, "a"))
    16. {
    17. for($j=0; $j<10; ++$j)
    18. {
    19. if (flock($fl, LOCK_EX)) break;
    20. else sleep(1);
    21.  
    22. }
    23. fwrite($fl,$zap);
    24. flush($fl);
    25. flock($fl, LOCK_UN);
    26. fclose($fl);
    27. return true;
    28. }
    29. else
    30. {
    31. return false;
    32. }
    33. }
    34.  
    35. ?>
    36.  
     
  10. Simpliest

    Simpliest Активный пользователь

    С нами с:
    24 сен 2009
    Сообщения:
    4.511
    Симпатии:
    2
    Адрес:
    Донецк
    Ты вот это не забыл поменять?
     
  11. incondition

    incondition Активный пользователь

    С нами с:
    5 янв 2009
    Сообщения:
    30
    Симпатии:
    0
    Уважаемый Simpliest, а почему
    Код (Text):
    1.  
    2. $code_pages="windows-1251";
    3. $msg=iconv("utf-8", $code_pages, $msg);
    не работает? функция iconv возвращает пустую строку.
     
  12. incondition

    incondition Активный пользователь

    С нами с:
    5 янв 2009
    Сообщения:
    30
    Симпатии:
    0
    Нашел сам проблему. Изначально на странице текст присваивался переменной, затем она передавалась на другую страницу... php текст приводит в таком случае в кодировку utf-8. затем я решил весь текст вынести в один файл и на месте текста оказалась переменная. После этого iconv("utf-8", $code_pages, $msg) перестала работать. Если эту функцию убрать, то с кодировкой тоже какие-то проблемы зато все работает если сделать не
    $msg=$msg_goods_add;
    а
    $msg=iconv( $code_pages, "utf-8", $msg_goods_add);