Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Ошибка с кодировкой после обработки JavaScript (https://javascript.ru/forum/misc/75041-oshibka-s-kodirovkojj-posle-obrabotki-javascript.html)

Curt54rus 28.08.2018 06:30

Ошибка с кодировкой после обработки JavaScript
 
Добрый день!

Подскажите пожалуйста, есть функция JavaScript после которой открываются еще 20 новостей. => "Показать еще"

Так вот после нажатия на эту кнопку - новость отображается в глючной кодировке... Хотя в БД все в одной кодировке.

В JavaScript не разбираюсь, но получается в каких-то кракозябрах... подскажите кто знает, в каком направлении копать эту проблему?

Сайт: binkra.ru, взизу под новостями есть кнопочка!

Заранее спасибо большое!

Artur_Hopf 28.08.2018 08:05

Я тоже не разбираюсь, но эта строка мне не нравится там =)
contentType: "application/x-www-form-urlencoded;charset=ISO-8859-15",


Посмотри в каком виде данные приходят:

success: function(data) {
console.log(data);
}

Curt54rus 28.08.2018 13:43

Ту строчку я сам добавлял потестить будет ли менять кодировку... удалил ее вобщем...

строчку что ты дал - добавил, а куда дальше смотреть?

Aetae 28.08.2018 14:49

В head добавь
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">

Curt54rus 29.08.2018 07:02

Добавил, кодировку это не исправило

Aetae 29.08.2018 12:33

Сервер тоже пусть отправляет заголовок Content-Type: text/html; charset=windows-1251, сейчас он даёт просто text/html.
Можно ещё в запрос добавить mimeType:'text/html; charset=windows-1251'; но лучше таки править сервер.

laimas 29.08.2018 12:55

Ajax работает с UTF. И зачем сервер отвечает полноценными страницами?

Aetae 29.08.2018 13:04

laimas, "дешёвый" ajax: "а зачем серверный код править и так сойдёт".:)

laimas 29.08.2018 13:10

Это не Ajax, а бардак, потому как на асинхронные запросы выплевывается обычная страница со всем прелестями - подключениями JS/CSS, с JS на страницах. Причем кодировка у них указывается как UTF.

Curt54rus 29.08.2018 13:28

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

проблему решил прописав в начало index.php
header('Content-Type: text/html; charset=windows-1251');


Всем отписавшимся еще раз спасибо, тему можно закрывать!

laimas 29.08.2018 14:02

Цитата:

Сообщение от Curt54rus
проблему решил

Это вы обязаны делать, ибо кодировка контента страницы определена ранее, а то что асинхронным запросом отдается, то указывается только для него, никакой метатег не поможет.

Что касается "решил", то это вряд ли, вы клонируете метатеги, на что еще не известно как будет реагировать гугл с яшкой, клонируете активные сценарии. Вникайте в это и меняйте на сервере код - если запрос не асинхронный (первичный запрос страницы), значит сервер отдает ее целиком, иначе только подгружаемые блоки с информацией.

И коли используется Ajax, и не дай бог будет использоваться JSON, то при CP1251 возникнут реальные проблемы. А чтобы этого избежать переведите свой сайт в UTF.


Часовой пояс GMT +3, время: 17:07.