За последние 24 часа нас посетили 66579 программистов и 1617 роботов. Сейчас ищут 1054 программиста ...

Проблема с кодировкой при передаче данных скрипту

Тема в разделе "PHP для новичков", создана пользователем alive342, 21 апр 2011.

  1. alive342

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

    С нами с:
    21 апр 2011
    Сообщения:
    137
    Симпатии:
    0
    Адрес:
    Российская Федерация
    Проблема такая.
    Существует некоторая форма в UTF-8
    HTML:
    1. <form action="script.php" method="post">
    2. <input name="bl">
    В script.php (тоже UTF-8)
    PHP:
    1.  
    2. <?php
    3. $bl = $_POST['bl']; //получаю
    4. $bl = preg_replace ('/[^a-zA-ZА-Яа-я0-9\s]/', '',$bl); //убираю все, кроме букв и цифр
    5. echo $bl; //выводим для теста, ломается кодировка, даже если в браузере принудительно стоит UTF-8
    6. ?>
    7.  
    Я пробовал

    PHP:
    1.  
    2. <?php
    3. $bl = $_POST['bl'];
    4. $code = mb_detect_encoding($bl); //детектим кодировку
    5. $bl = iconv($code, 'UTF-8', $bl); //меняем кодировку
    6. echo $code . '<br>'; //как не странно, но UTF-8, и получается, что меняю тоже на то же
    7. echo $bl . '<br>'; //странно, но ничего не отображается - т.е. пусто
    8. $bl = preg_replace ('/[^a-zA-ZА-Яа-я0-9\s]/', '',$bl);
    9. echo $bl . '<br>'; //ну тут соответственно тоже пусто
    10. ?>
    11.  
    Подскажите, пожалуйста, что может быть не так, и как сделать так:)
     
  2. brainiac

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

    С нами с:
    5 янв 2011
    Сообщения:
    33
    Симпатии:
    0
    Адрес:
    Новосибирск
    В хидере: <meta http-equiv="content-type" content="text/html; charset=utf-8"> ?
    Мб перед выводом текста ещё написать <?php header('Content-type: text/html; charset=utf-8'); ?>

    Ещё встречался с проблемой присутствия BOM, отображалось все криво и иногда вообще пропадало...поэтому использую utf-8 без Bom (а может я все вру)
     
  3. alive342

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

    С нами с:
    21 апр 2011
    Сообщения:
    137
    Симпатии:
    0
    Адрес:
    Российская Федерация
    Все файлы сохранены в UTF-8, а так же в в мете нтмл формы прописано charset=utf-8
    пробовал перед выводом результата прописывать кодировку, та же фигня (
    что то где то упускаю по мелочи, и не пойму, толи я не еду, толи лыжи дурацкие
     
  4. Invision

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

    С нами с:
    26 фев 2009
    Сообщения:
    1.437
    Симпатии:
    1
    Адрес:
    Томск
    С лыжами все ок ты их наоборот одел
     
  5. ALEXU

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

    С нами с:
    5 апр 2011
    Сообщения:
    79
    Симпатии:
    0
    Адрес:
    Russia
    Может в .htaccess еще прописать кодировку попробовать?
    AddDefaultCharset utf-8