[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Проблемы с кодировкой
Aleksandra
Здравствуйте, я знаю, что подобный вопрос задавался тысячу раз.
Посмотрела по разным форумам, и эти методы не помогают.

Проблема вот в чем:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta
http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title></title>
</head>
<body>
<?php

echo"Привет!";
?>
</body>
</html>



Выводит: Привет!

Пробовала так:

<?php
header('Content-Type: text/html; charset=UTF-8');
echo 'тест';


Выводит: Warning: Cannot modify header information - headers already sent by (output started at Z:\home\localhost\www\PhpProject1\index.php:8) in Z:\home\localhost\www\PhpProject1\index.php on line 9
Привет!

Стоит денвер, при запуске выводит караказябры, при установке тоже самое, но все работает.
В php.ini тоже частички документа караказябры.

OC - Windows 32-bit Enterprise.
С php работаю под NetBeans IDE 6.9.1

Помогите пожалуйста.

Спасибо.



Спустя 1 минута, 58 секунд (21.09.2011 - 12:08) kirik написал(а):
Aleksandra
Избавьтесь от ошибки "Cannot modify header information - headers already sent by.." и всё будет путём smile.gif

UPD
тыц

Спустя 1 минута, 33 секунды (21.09.2011 - 12:09) Winston написал(а):
Попробуй так написать.
Свернутый текст
<?php
header('Content-Type: text/html; charset=UTF-8');
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<
html>
<
head>
<
meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<
title></title>
</
head>
<
body>
<?php
echo"Привет!";
?>
</body>
</
html>

И если будет опять ошибка
Цитата
Warning: Cannot modify header information

То сохрани файл в кодировке UTF-8 Without BOM

Спустя 1 минута, 12 секунд (21.09.2011 - 12:11) Aleksandra написал(а):
kirik

С удовольствием, а не подскажете как?

Спустя 1 минута, 53 секунды (21.09.2011 - 12:12) kirik написал(а):
Aleksandra
Посмотрите ссылку в моём посте, а там "Вопрос №3".

Спустя 12 минут, 16 секунд (21.09.2011 - 12:25) Aleksandra написал(а):
kirik

Я не ориентируюсь на форуме, дайте ссылку на ваш пост пожалуйста.
Спасибо.

Спустя 5 минут, 50 секунд (21.09.2011 - 12:31) kirik написал(а):
Цитирую (отсюда):

Немного теории. На запрос браузера сервер отвечает в два этапа: первым отправляется заголовок с информацией о странице (статус ответа, кодировка, значения устанавливаемых кукисов (!) и многое другое), а уж только затем отправляется само содержание страницы (обычно - html код).

По этой причине модификация заголовка (с помощью функций header и в частности setcookie) возможна только до того, как скрипт отправит в поток какой-либо символ, даже если пробел.

Таким образом, описанная ошибка может появится в трёх случаях:
1. Ошибка логики приложения: вы сначала отправляете html-код (например, начало разметки), а потом пытаетесь поставть кукисы:
<html>
<
head>
<
title>Тут модный заголовок</title>
</
head>
<
body>
<?php
/*
* Открываем сессию для наших любимых пользователей
*/

session_start();
/*
* Блин, я забыл указать кодировку страницы, ну да ладно
* Я ее отправлю в заголовке, круче будет!
*/

header("Content-type: text/html; charset=utf-8");

echo 'WTF';


2. Программист случайно поставил пробел или перенос строки в самое начало файла:
*я пробел* <?php
session_start();


3. Файл сохранен в кодировке "UTF-8 with BOM". PHP не имеет корректно работать с этим самым "BOM", кодировка должна быть UTF-8 без BOM.

Совет.
Вот пример полного сообщения об ошибке:
Цитата
Warning: Cannot modify header information - headers already sent by (output started at W:\home\localhost\www\test\index.php:6) in W:\home\localhost\www\test\index.php on line 15

Обратите внимание на информацию в скобках. Дословно: "заголовки были отправлены было в W:\home\localhost\www\test\index.php:6", где последняя цифра - номер строки, где появился "левый" символ, который вынудил сервер отправить заголовок.

Спустя 1 минута, 3 секунды (21.09.2011 - 12:32) Xes написал(а):
Сообщения других то читаем? Или сами пишем? Все уже вам написали.

Спустя 10 минут, 17 секунд (21.09.2011 - 12:42) Aleksandra написал(а):
Спасибо большое.
1. Ошибка логики приложения - Мой вариант.

Поправила, все работает.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.