Jump to content
  • 0

Кодировки.


Игорь Ермаков
 Share

Question

Доброго всем дня. Проблема вот в чём:

<!DOCTYPE html PUBLIC  "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Заголовок</title>
<link href="css/styles.css" type="text/css" rel="stylesheet" media="all" />
</head>
<body>



</body>
</html>

Такой вот прекрасный красивый код, валидатор ничего против не имеет, на хостинге всё работает идеально, никаких проблем.

Запускаю на локалхосте. Получаю вот что:

п»ї<!DOCTYPE html PUBLIC  "-//W3C//DTD XHTML 1.0 Strict//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Заголовок</title>
</head>
<body>



</body>
</html>

Никак не пойму в чём тут смысл, в Notepad++ указал кодировку UTF-8.

В полный ступор ставит появление перед доктайпом п»ї этой фигни. Может у меня с веб-сервером что не так?

Edited by Игорь Ермаков
Link to comment
Share on other sites

12 answers to this question

Recommended Posts

  • 0
Доброго всем дня. Проблема вот в чём:

<!DOCTYPE html PUBLIC  "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Заголовок</title>
<link href="css/styles.css" type="text/css" rel="stylesheet" media="all" />
</head>
<body>



</body>
</html>

Такой вот прекрасный красивый код, валидатор ничего против не имеет, на хостинге всё работает идеально, никаких проблем.

Запускаю на локалхосте. Получаю вот что:

п»ї<!DOCTYPE html PUBLIC  "-//W3C//DTD XHTML 1.0 Strict//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Заголовок</title>
</head>
<body>



</body>
</html>

Никак не пойму в чём тут смысл, в Notepad++ указал кодировку UTF-8.

В полный ступор ставит появление перед доктайпом п»ї этой фигни. Может у меня с веб-сервером что не так?

Предположу, может а нем же надо "сохранить без BOM"?

Link to comment
Share on other sites

  • 0

Хм, исчезла эта фигня перед доктайпом, спасибо :) но русский текст всё равно не отображается.

А в чём отличие UTF-8 от UTF-8 (без BOM)?

Нужно только то, чтобы вот это: http://portfolio.kg-am.com/test/

Так же работало на локалхосте. Всегда верстал в ANSI но блин, столько проблем при переносе на хостинг, да и вообще эта кодировка валидатором не поддерживается.

Link to comment
Share on other sites

  • 0

Veseloff, огромное спасибо.

Вот что налабал, всё работает, может кому пригодится:

<?php
header('Content-Type: text/html; charset=utf-8');
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Заголовок</title>
<link href="css/styles.css" type="text/css" rel="stylesheet" media="all" />
</head>
<body>



</body>
</html>

Edited by Игорь Ермаков
Link to comment
Share on other sites

  • 0
Хм, исчезла эта фигня перед доктайпом, спасибо :) но русский текст всё равно не отображается.

А в чём отличие UTF-8 от UTF-8 (без BOM)?

Нужно только то, чтобы вот это: http://portfolio.kg-am.com/test/

Так же работало на локалхосте. Всегда верстал в ANSI но блин, столько проблем при переносе на хостинг, да и вообще эта кодировка валидатором не поддерживается.

http://ru.wikipedia.org/wiki/UTF-8

"Порядок байтов (BOM, сигнатура)

Многие программы Windows (включая Блокнот) добавляют байты 0xEF, 0xBB, 0xBF в начале любого документа, сохраняемого как UTF-8. Это метка порядка байтов Юникода (англ. Byte Order Mark, BOM), также её часто называют сигнатурой (соответственно, UTF-8 и UTF-8 with Signature). Чтобы при сохранении избавиться от добавления сигнатуры, используйте, например, Notepad++."

Быть может, сервер прошит на отличную от UTF-8 кодировку, надо в конфиге апача найти charset и поправить.

Link to comment
Share on other sites

  • 0
Быть может, сервер прошит на отличную от UTF-8 кодировку, надо в конфиге апача найти charset и поправить.

Justnewone, я в серверах вообще не шарю. Я локалхост устанавливал пакетом денвер, самым новым. Я так понимаю, там автоматически устанавливается веб-сервер Apach.

Гугл сказал сюда лезть:

W:\usr\local\apache\conf\httpd.conf

Огромный файл, что там подправить?

Link to comment
Share on other sites

  • 0
Justnewone, я в серверах вообще не шарю. Я локалхост устанавливал пакетом денвер, самым новым. Я так понимаю, там автоматически устанавливается веб-сервер Apach.

Гугл сказал сюда лезть:

W:\usr\local\apache\conf\httpd.conf

Огромный файл, что там подправить?

закинь сюда W:\usr\local\apache\conf\httpd.conf и заодно W:\usr\local\apache\conf\etc\hosts.conf

Я по памяти не вспомню как пишется, там есть слово charset =) С грамматикой туго.

AddDefaultCharset windows-1251 закомментировать (тогда браузер полезет смотреть в META в самом файле), либо сменить на AddDefaultCharset utf-8

Денвер давно передергивал =), но помница, да, там был прописан русский апач

Edited by Justnewone
Link to comment
Share on other sites

  • 0

W:\usr\local\apache\conf\

тут нет каталога etc

Может создать?

Со словом charset в этом файле встречается 2 строки:

# Denwer: default charset.
#
AddDefaultCharset windows-1251

Сейчас попробую сменить на utf-8

Сменил, ничего не произошло.

Как эту строчку закомментировать?

Дошло, тюрьму поставил. Всё равно ничего.

Edited by Игорь Ермаков
Link to comment
Share on other sites

  • 0
W:\usr\local\apache\conf\

тут нет каталога etc

Может создать?

Со словом charset в этом файле встречается 2 строки:

# Denwer: default charset.
#
AddDefaultCharset windows-1251

Сейчас попробую сменить на utf-8

Сменил, ничего не произошло.

Как эту строчку закомментировать?

Дошло, тюрьму поставил. Всё равно ничего.

если AddDefaultCharset windows-1251 нашелся в самом httpd.conf, то etc не нужен уже. Настроить кодировку можно как на весь сервак, так и на отдельные виртуальные хосты. в этой папке по идее в нормальных серваках лежит host.conf (hosts.conf, vhost.conf) - где расписана кофига для каждого. ВОбщем, песня долгая, лучше у апача на сайте в доке почитать.

Рестартанул? Чтобы применились изменения в конфиге апач надо перезапускать. У денвера каж-ца иконка даж на рабочем столе ставится, либо командной строкой.

Edited by Justnewone
Link to comment
Share on other sites

  • 0
Рестартанул?

Ну вот с этого и стоило начинать :)

Я же говорю у меня совершенно нет опыта работы с серверами, элементарных вещей не понимаю. Рестарт сделал всё заработало, спасибо :(

Теперь не нужно всяких там header(); :(

Я даже и не знал, что рестарт надо делать. Хотя мог и догадаться :(

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy