1 (9 лет 6 месяцев назад)

Тема: Не работает автоматическое определение кодировки браузером

в HTML такое прописано

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=windows-1251">

Но браузеры не могут определить кодировку самостоятельно, почему ????

Так же стоит MediaWiki который выдает текст HTML в кодировке UTF-8, браузеры так же отказываются автоопределять.

Вот такая вот проблема

Отредактировано demmax2004 (, 9 лет 6 месяцев назад)

2 (9 лет 6 месяцев назад)

Re: Не работает автоматическое определение кодировки браузером

demmax2004 пишет:

Но браузеры не могут определить кодировку самостоятельно, почему ????

А сама страничка точно сохранена в кодировке 1251? Образец бы.

3 (9 лет 6 месяцев назад)

Re: Не работает автоматическое определение кодировки браузером

кодировка кроме meta документа еще может быть в заголовке ответа сервера, браузер может считать его важней

4 (9 лет 6 месяцев назад)

Re: Не работает автоматическое определение кодировки браузером

Andrey пишет:

кодировка кроме meta документа еще может быть в заголовке ответа сервера, браузер может считать его важней

Взаголовке отключен явно не стоит, так как html страницы могут быть в разной кодировке

5 (9 лет 6 месяцев назад)

Re: Не работает автоматическое определение кодировки браузером

Content-Type что в браузере в консоли пишет? и что за сервер раздает?

смысл такой что или сервак приписывает свой заголовок и браузеру уже без разницы на  CONTENT="text/html; charset=windows-1251, или скрипт отсылает не в той кодировке, или в случае если это просто .html - то возможно файл нуждается  в замене кодировки.

Отредактировано (, 9 лет 6 месяцев назад)

6 (9 лет 6 месяцев назад)

Re: Не работает автоматическое определение кодировки браузером

stas_last пишет:

Content-Type что в браузере в консоли пишет? и что за сервер раздает?

Пишет

HTTP/1.1 200 OK
Server: nginx/1.6.2
Date: Tue, 21 Oct 2014 07:07:04 GMT
Content-Type: text/html; charset=UTF-8
Transfer-Encoding: chunked
Connection: keep-alive
Keep-Alive: timeout=20
X-Powered-By: PHP/5.6.0

Хотя в конфе ngnix убран параметр charset ......

7 (9 лет 6 месяцев назад)

Re: Не работает автоматическое определение кодировки браузером

demmax2004 пишет:

Хотя в конфе ngnix убран параметр charset ......

значит за nginx еще http сервер, даже точно от там есть, иначе для простого статичного .html файла не было бы "X-Powered-By: PHP/5.6.0"

8 (9 лет 6 месяцев назад)

Re: Не работает автоматическое определение кодировки браузером

PHP-FPM или fast-cgi, или еще что-то подобное прикрученное к энжинксу, но не апач. так как у вас отдает так или иначе php ,- проблема скорее в нем. header("Content-Type: text/html; charset=windows-1251"); поиграйте, iconv пробуйте. узнайте у хостеров, некоторые любят выставлять свои любимые кодировки. и проверьте точно ли сохранен файл в 1251.

9 (9 лет 6 месяцев назад)

Re: Не работает автоматическое определение кодировки браузером

stas_last пишет:

и проверьте точно ли сохранен файл в 1251.

точно, лично сохранял и сервер выдает его в кодировке 1251.

10 (9 лет 6 месяцев назад)

Re: Не работает автоматическое определение кодировки браузером

сделайте статичные страницы в utf8 и 1251 зайдите на них. если все путем, то в каждом php поставьте вначале header("Content-Type: text/html; charset=windows-1251"); можете в личку кинуть любой php, посмотрю сейчас.

11 (9 лет 6 месяцев назад)

Re: Не работает автоматическое определение кодировки браузером

Если за Nginx стоит Апач - есть смысл посмотреть на файлы .htacsess на наличие AddDefaultCharset utf-8
Если VDS то придется просматривать кофиги веб сервера.
Если хостинг - пусть хостер поможет.

12 (9 лет 5 месяцев назад)

Re: Не работает автоматическое определение кодировки браузером

Нашел в чем причина это косячил новый PHP 5.6 он каким то методом добавлял в Content-Type: параметр charset=UTF-8 откатился на PHP 5.4 теперь в заголовке только Content-Type: text/html;

Отредактировано demmax2004 (, 9 лет 5 месяцев назад)