Проблема такая. Существует некоторая форма в UTF-8 HTML: <form action="script.php" method="post"> <input name="bl"> В script.php (тоже UTF-8) PHP: <?php $bl = $_POST['bl']; //получаю $bl = preg_replace ('/[^a-zA-ZА-Яа-я0-9\s]/', '',$bl); //убираю все, кроме букв и цифр echo $bl; //выводим для теста, ломается кодировка, даже если в браузере принудительно стоит UTF-8 ?> Я пробовал PHP: <?php $bl = $_POST['bl']; $code = mb_detect_encoding($bl); //детектим кодировку $bl = iconv($code, 'UTF-8', $bl); //меняем кодировку echo $code . '<br>'; //как не странно, но UTF-8, и получается, что меняю тоже на то же echo $bl . '<br>'; //странно, но ничего не отображается - т.е. пусто $bl = preg_replace ('/[^a-zA-ZА-Яа-я0-9\s]/', '',$bl); echo $bl . '<br>'; //ну тут соответственно тоже пусто ?> Подскажите, пожалуйста, что может быть не так, и как сделать так
В хидере: <meta http-equiv="content-type" content="text/html; charset=utf-8"> ? Мб перед выводом текста ещё написать <?php header('Content-type: text/html; charset=utf-8'); ?> Ещё встречался с проблемой присутствия BOM, отображалось все криво и иногда вообще пропадало...поэтому использую utf-8 без Bom (а может я все вру)
Все файлы сохранены в UTF-8, а так же в в мете нтмл формы прописано charset=utf-8 пробовал перед выводом результата прописывать кодировку, та же фигня ( что то где то упускаю по мелочи, и не пойму, толи я не еду, толи лыжи дурацкие