Проблема с кодировкой

Игорь К
На сайте с 07.02.2005
Offline
151
678

Помогите разобраться с кодировкой, сайт http://tm.ua/

Проблема: в новостях сайта кодировка выводится криво. Проблема особенно наглядно видна, когда ссылка на новость сайта отправляется кому-то в скайпе. На скрине - пример проблемы: сверху - ссылка на главную. А снизу - ссылка на новость http://tm.ua/show_news.php?who=4690.

Как побороть баг? )

Спасибо! )

Грамотная регистрация торговой марки - ЗДЕСЬ (http://tm.ua/)
K
На сайте с 26.04.2017
Offline
19
#1

show_news.php

show_law.php

arts.php

laws.php

Для начала убедитесь в том, что данные файлы сохранены в той же кодировке, что указана в

<meta name="Content-Type" content="text/html; charset=windows-1251">
[umka]
На сайте с 25.05.2008
Offline
456
#2

Рекомендую явно указать кодировку в http-заголовке

Content-Type: text/html; charset=windows-1251

Лог в помощь!
Игорь К
На сайте с 07.02.2005
Offline
151
#3
Kratech:
show_news.php
show_law.php
arts.php
laws.php
Для начала убедитесь в том, что данные файлы сохранены в той же кодировке, что указана в
<meta name="Content-Type" content="text/html; charset=windows-1251">

Спасибо, Kratech! Правильно я понимаю, что надо посмотреть, что в коде этих файлов?

В файле arts.php кодировка указана <meta name="Content-Type" content="text/html; charset=windows-1251">. Да инет проблем с выводом этого блока.

А вот в файле show_news.php там вообще все include:

<?

#ini_set('allow_url_fopen', 'on');

#ini_set('display_errors', 1);

#error_reporting(E_ALL);

include ("header.php");

include("config.php");

?>

<table> <tr> <td class="left-col"> <!-- left menu --> <?include("inc/menu.php")?> <!-- \left menu -->

Поэтому посмотрел, что в файле header.php, там так:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<title>Регистрация торговой марки. Регистрация - Украина, Россия и другие страны</title>

<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7">

<meta name="Content-Type" content="text/html; charset=windows-1251">

Т.е. вроде есть указание кодировки (((

Куда дальше копать?

---------- Добавлено 20.03.2018 в 11:45 ----------

'[umka:
;15526141']Рекомендую явно указать кодировку в http-заголовке Content-Type: text/html; charset=windows-1251
Спасибо, [umka]! Я выше ответил, что там в коде.
K
На сайте с 26.04.2017
Offline
19
#4
Правильно я понимаю, что надо посмотреть, что в коде этих файлов?

Я предположил, что указанные файлы сохранены в кодировке, отличной от Windows-1251 (UTF-8, скорее всего). Сохранить в нужной кодировке можно в текстовом редакторе.

В Notepad++ должен быть пункт меню Кодировка - Преобразовать в windows-1251 (сам не проверял, не пользуюсь).

В Sublime Text — File - Save with Encoding - Cyrillic (Windows 1251).

Игорь К
На сайте с 07.02.2005
Offline
151
#5
Kratech:
Я предположил, что указанные файлы сохранены в кодировке, отличной от Windows-1251 (UTF-8, скорее всего). Сохранить в нужной кодировке можно в текстовом редакторе....

Проверил файл show_news.php его кодировка Cyrillic (iWindows-1251). Этот файл надо было проверить?

[umka]
На сайте с 25.05.2008
Offline
456
#6
Игорь К:
Спасибо, [umka]! Я выше ответил, что там в коде.

Я имел в виду не в коде страницы, а http-заголовок, отдаваемый сервером.

Сейчас сервер не говорит в явном виде, в какой кодировке выдаваемый контент:

$ HEAD "http://tm.ua/show_news.php?who=4690"

200 OK
Connection: close
Date: Wed, 21 Mar 2018 12:21:57 GMT
Server: nginx/1.12.2
Content-Type: text/html
Client-Date: Wed, 21 Mar 2018 12:21:58 GMT
Client-Peer: 62.149.5.223:80
Client-Response-Num: 1
X-Powered-By: PHP/5.4.16
K
На сайте с 26.04.2017
Offline
19
#7
Куда дальше копать?

В файле header.php заменить

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<title>Регистрация торговой марки. Регистрация - Украина, Россия и другие страны</title>
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7">
<meta name="Content-Type" content="text/html; charset=windows-1251">

на

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html; charset=windows-1251">
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7">
<title>Регистрация торговой марки. Регистрация - Украина, Россия и другие страны</title>

Во всех указанных в моём первом посте файлах заменить

<meta name="Content-Type" content="text/html; charset=windows-1251">

на

<meta http-equiv="content-type" content="text/html; charset=windows-1251">

и поднять этот тег как можно выше, чтобы был до <title></title>.

Игорь К
На сайте с 07.02.2005
Offline
151
#8

Спасибо, Kratech, проблема решена! Супер!:)

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