Я получаю сообщение об ошибке «Не удается изменить информацию заголовка» в utf8, как ее преодолеть? - PullRequest
1 голос
/ 05 августа 2011

Код работает в ANSI отлично, но когда я изменяю кодировку на utf8, появляется следующая ошибка:

  • Предупреждение: невозможно изменить информацию заголовка - заголовки, уже отправленные (вывод начался с C: \ xampplite \ htdocs \ alex.php: 1) в C: \ xampplite \ htdocs \ alex.php в строке 2

-

<?php 
header("Content-Type: image/png");
$im = @imagecreate(110, 20)
    or die("Cannot Initialize new GD image stream");
$background_color = imagecolorallocate($im, 0, 0, 0);
$text_color = imagecolorallocate($im, 233, 14, 91);
imagestring($im, 1, 5, 5, "A Simple Text Привет", $text_color);
imagepng($im);
imagedestroy($im);
?>

вывод кода должен быть сгенерированным изображением с предложением.

Когда я сохраняю его в utf8 без спецификации, получаются совершенно другие символы.

Например, если я сохраню его в utf8 без спецификации, вывод сценария будет следующим:

enter image description here Но я ожидаю, что это предложение: «Простой текст Привет»

Ответы [ 3 ]

3 голосов
/ 05 августа 2011

Возможно, у вас есть спецификация ( метка порядка байтов ) в начале файла.Поскольку он находится в самом начале, перед открывающим тегом <?php, он выводится до того, как ваш PHP-код начнет выполняться.Используйте редактор, который позволяет создавать и редактировать файлы UTF-8 без спецификации (например, Notepad ++).

1 голос
/ 19 октября 2013

Используйте UTF-8 без спецификации и вставьте его в начало вашего PHP-файла:

header('Content-Type: text/html; charset=UTF-8');
1 голос
/ 09 августа 2013

@ Делнан правильный.

Чтобы сохранить кодировку перед ее изменением, обрежьте текст в буфер обмена (CTRL + X), измените кодировку и вставьте текст обратно (CTRL + V).

...