Как странице с формой, так и отображаемой странице необходимо использовать одну и ту же кодировку.Чтобы воспроизвести поведение, которое вы демонстрируете, мне нужно было создать 2 страницы, одну из которых, с
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
, которая размещалась на странице без этого.
Если япоместите метатег на обе страницы, он выводит правильно, если я удаляю его с обеих страниц, он выводит корректно.
Если он есть только в форме, вы получаете то, что отправили, и если только на принимающей странице естьэто, вы получите? 's.
test.php
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<form method="post" action="test2.php">
<input type="text" name="string">
<input type="submit">
</form>
test2.php
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<?php
if(isset($_POST['string']))
{
echo "<pre>";
print_r($_POST['string']);
die();
}
?>
Если я вставлю вашу строку во вводполе test.php, нажмите «отправить», я вернул его обратно в test2.php.Если я удалю первую строку test2.php, я получу описанное вами поведение.