Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > Кодировка страницы в браузере


Автор: Artemon 30.9.2011, 21:56
Выяснил, чтобы браузер автоматически выбрал кодировку необходимо в коде указать следующее:

Код

<?php header("Content-Type: text/html; charset=utf-8"); ?>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
</head>
</html>


Неужели в каждую страницу руками придется вставлять такую партянку ? Может есть более универсальный способ ?


Автор: Sentox 30.9.2011, 21:59
А этого разве не хватает что бы браузер понял кодировку страницы
<meta http-equiv="content-type" content="text/html; charset=utf-8" />

Автор: Artemon 30.9.2011, 22:06
Проверяю в Opera - не хватает

Добавлено через 1 минуту и 20 секунд
Да и дело даже не в размере этой партянуи, а в том, что нужно копипастить во все страницы это, а если вдруг задумаю изменить кодировку - опять руками на всех страницах менять

Автор: Sentox 30.9.2011, 22:14
Даже не могу предположить почему столько страниц с хедером, вроде как только должен быть один каркас а все остальные подключаться, но ладно вот решение инкапсуляции:
При изменении кодировки стоит изменить только в функции.
Код

<php
function sendHeaderContent()
{
    header("Content-Type: text/html; charset=utf-8");
}
?>



Код

<?php sendHeaderContent();?>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
</head>
</html>


или так 
Код

<php
function getCharset()
{
    return 'utf-8';
}
?>



Код

<?php header("Content-Type: text/html; charset=" . getCharset()); ?>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=<?php echo getCharset(); ?>" />
</head>
</html>

Автор: Artemon 30.9.2011, 22:28
Цитата(Sentox @  30.9.2011,  22:14 Найти цитируемый пост)
Даже не могу предположить почему столько страниц с хедером, вроде как только должен быть один каркас а все остальные подключаться

Можно пример ?

Автор: Sentox 30.9.2011, 22:59
Код

<?php header("Content-Type: text/html; charset=utf-8"); ?>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
</head>
<body>
<?php include('templates/head.html')?>
<?php if($content == true) include('templates/content.html') else include('templates/content2.html')?>
<?php include('templates/footer.html')?>
</body>
</html>



Автор: Sanchezzz 1.10.2011, 17:19
самый легкий вариант это в .htaccess добавить 
Код

AddDefaultCharset utf-8
 AddCharset utf-8 *
 <IfModule mod_charset.c>
 CharsetSourceEnc utf-8
 CharsetDefault utf-8
 </IfModule>

файл нужно создать в корне сайта.

Автор: Absinthe 2.10.2011, 01:51
Цитата

Неужели в каждую страницу руками придется вставлять такую партянку ?
 Не придется, если научишься пользоваться шаблонизатором.
Тогда только в базовый шаблон пропишешь и остальные от него будешь наследовать.

Автор: krundetz 2.10.2011, 16:13
Artemon, если есть возможность менять файл .htaccess то вариант предложены Sanchezzz оптимален

если такой возможности нет, то выход в том, чтобы точка входа на сайт (т.е. все действия запускались бы через 1 файл, например index.php)  который бы перед выводом и отдавал бы браузеру такой заголовок
Цитата(Sentox @  30.9.2011,  21:59 Найти цитируемый пост)
А этого разве не хватает что бы браузер понял кодировку страницы
<meta http-equiv="content-type" content="text/html; charset=utf-8" /> 

если в Apache отсылает информацию о кодировке то не хватает

Автор: Gold Dragon 3.10.2011, 07:18
что тут думать, создать в корне .htaccess и всё.. Я не видел таких серверов которые запрещали бы менять кодировку..
и я думаю достаточно одной строчки 
AddDefaultCharset UTF-8

Автор: koder2 10.10.2011, 14:45
Цитата(Gold Dragon @ 3.10.2011,  07:18)
что тут думать, создать в корне .htaccess и всё.. Я не видел таких серверов которые запрещали бы менять кодировку..
и я думаю достаточно одной строчки 
AddDefaultCharset UTF-8

Мне помогало именно так, в корне AddDefaultCharset utf-8, когда сервер выдавал кириллицу - хостер кстати был литовский, не помню как точно называется.

Автор: Gold Dragon 10.10.2011, 14:50
так всегда помогает smile Особенно если Литовский ну или немецкий...  smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)