|
|
|
| Люди я не хотел повторяться, но cheops мне сказал как-то для новых вопросов новые темы, делаю как он говорит.
Так вот, эта строка, которая определяет шрифт на странице
header("Content-Type: text/html; charset=utf-8");
как с ней быть когда я её прописываю появляются закрашены ромбики вместо слов а когда убираю всё становиться как обычно "читаемое".
Вот мне интересно это строка вообще нужна? и для чего она ? без неё не как? или это по капризу вебмастера?
или есть опасность что очередной пользователь зашедший на страницу без кодировки увидит эти же ромбики? | |
|
|
|
|
|
|
|
для: Dazzl
(21.07.2011 в 09:42)
| | Это HTTP-заголовок с типом документом и кодировкой. Он сообщает браузеру, что сейчас пойдет HTML-документ в кодировке UTF-8. Если вы передаете документ в другой кодировке - может возникнуть ошибка. Лучше для указания кодировки использовать META-тэг, браузер в первую очередь должен на него ориентироваться. | |
|
|
|
|
|
|
|
для: cheops
(21.07.2011 в 12:22)
| | хороший ответ, даже я ничего не понял
для: Dazzl (21.07.2011 в 09:42)
если у вас "квадратики" значит само собой в вашем скрипте проблемы с кодировкой.
денвер без header("Content-Type: text/html; charset=utf-8"); всегда любой сайт открывает в win1251, так что польза от этого заголовка есть, и порой не только в денвере.
определитесь в какой кодировке будете "программировать", и исправьте под неё все страницы и сами файлы в том числе. (кроме мета тегов на страницах так же требуется указывать кодировку и самих файлов *.php, иначе будут квадраты) | |
|
|
|
|
|
|
|
для: f111
(21.07.2011 в 12:44)
| | Люди значит мне надо И мета теги И header с одинаковой кодировкой. Да, я так делал и сработало тока win1251 (когда прописываю это обоим) а вот когда пишу utf-8 обратно ромбики | |
|
|
|
|
|
|
|
для: Dazzl
(21.07.2011 в 13:30)
| | 1) Попробуйте сначала просто META-тэг.
2) У вас сам текст страницы в какой кодировке сейчас? В UTF-8 или в какой-то другой? | |
|
|
|
|
|
|
|
для: cheops
(21.07.2011 в 13:35)
| | текст сохранен вот так 1251 (ANSI - кириллица)
на других сайтах предлагали сохранить в UTF-8 я попробовал и у меня ромбики заменились на №(%:*"_!№ причём в самом тексте то же
когда я ставлю такое <META HTTP – EQUIV="Content – Type" content="text/html" charset="windows – 1251">
он начинает жаловаться на сессию а именно
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at Z:\home\test1.ru\www\as\ludiplay.php:4) in Z:\home\test1.ru\www\as\ludiplay.php on line 9
9-я линия session_start(); | |
|
|
|
|
|
|
|
для: Dazzl
(21.07.2011 в 13:41)
| | Нет-нет сори на сессию он жаловался из-за пустых строк, мету поставил работает | |
|
|
|
|
|
|
|
для: Dazzl
(21.07.2011 в 13:53)
| | тока беда в том что когда кодировка неправильная он её игнорирует и сам ставил (думаю это браузер делает)
т.е. я хочу сказать если я ставлю это header("Content-Type: text/html; charset=utf-8");
он показывает ромбики
а еслия напишу так header("Content-Type: text/html; charset=сват4*№Г";)(№РЩАК");
будет все тип топ и поэтому я не знаю что работает из того что я пробую (( | |
|
|
|
|
|
|
|
для: Dazzl
(21.07.2011 в 13:55)
| | >тока беда в том что когда кодировка неправильная он её игнорирует и сам ставил (думаю это
>браузер делает)
Скорее всего он просто ориентируется в этом случае на META-тэг, где она выставлена правильно, если META-тэга нет, он пытается её распознать сам. Просто нужно указывать ту кодировку, которую используете, как правило, в этом случае проблем не бывает. | |
|
|
|
|
|
|
|
для: Dazzl
(21.07.2011 в 13:41)
| | Если текст в кодировке 1251, то не нужно отправлять HTTP-заголовок с сообщением, что текст в кодировке UTF-8, именно это несоответствие вызывает ромбики. У вас везде должна быть указана та кодировка, которую вы используете (в HTTP-заголовке и в META-тэге, обычно достаточно одного из них).
Если используете UTF-8 внимательно следите, чтобы в начало файла редактор не поместил признак UTF8-файла BOM, он часто приводит к такой ошибке, о которой вы пишите. Признак это часто невидим - не все редакторы его показывают. | |
|
|
|
|
|
|
|
для: cheops
(21.07.2011 в 15:05)
| | ещё вопросик вот посмотрите
<META HTTP – EQUIV="Content – Type" content="text/html" charset="windows – 1251">
<?php
error_reporting(E_ALL & ~E_NOTICE);
if ($_POST['rat']) {
header('location: http://'. $_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF']);
}
session_start();
.................
это начало моего кода. если ставлю мету это строка для сессии пустая и он начинает ругаться.
могу ли я поставить мету после сессии в самом php через echo?
типо того
<?php
error_reporting(E_ALL & ~E_NOTICE);
if ($_POST['rat']) {
header('location: http://'. $_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF']);
}
session_start();
echo <META HTTP – EQUIV="Content – Type" content="text/html" charset="windows – 1251"> | |
|
|
|
|
|
|
|
для: Dazzl
(21.07.2011 в 15:51)
| | >могу ли я поставить мету после сессии в самом php через echo?
Да, конечно. META-тэг предназначен для браузеров и начнет свою работу только при попадании к клиенту, поэтому можете выводить его где угодно относительно PHP-кода (в HTML, конечно, его положение определено заголовком HTML-документа). | |
|
|
|