Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   jQuaery get возвращает не UTF-8 (https://javascript.ru/forum/misc/35770-jquaery-get-vozvrashhaet-ne-utf-8-a.html)

copperfox 21.02.2013 16:32

jQuaery get возвращает не UTF-8
 
Здравствуйте! Подскажите пожалуйста по сути вопроса:

1. Есть файл index.php в который инклюдится файл news.php с кодом формирующим список новостей.
Страница правильно формируется в кодировке UTF-8.

2. Подключен jquery - при нажатии на новость с помощью get подгружает её в переменную и публикует в body. Файл myQJ.js.

3. Почему то возвращает кракозябры( подозреваю что windows-1251) когда надо UTF-8. При этом список всех новостей формируется (php include) нормально.

Коды:

index.php
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ru-ru" lang="ru-ru">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <title>Отладка JQuery</title>
    <script type="text/javascript" src="js/jquery.js"></script>
    <script type="text/javascript" src="js/myJQ.js"></script>
</head>

<body>
<?php include 'news.php'; ?>
</body>
</html>


Файл news.php:

<?php
$url = "http://www.webclient.touradmin.ru/b/main/72624/tourists_news/index?".$_SERVER['QUERY_STRING'];
echo implode('',file($url));
?>



Файл с моим JQ обработчиком myJQ.js:

$(function () {
    $('.tn_title').click(function () {
        $.get("tourists_news.php", { wc_action:"detail", id:"45824" })
            .done(function (data) {
//                alert("Data Loaded: " + data);
                $('body').html(data);
            });

    });
});


В результате новость подгружается в неверной кодировке. Где ошибка?

danik.js 21.02.2013 16:42

Цитата:

Сообщение от copperfox
Где ошибка?

Сервер отдает новости без указания Content-Type заголовка, а по умолчанию контент считается windows-1251.
Решение - либо в .htaccess добавить что-то вроде
Код:

# use utf-8 encoding for anything served text/plain or text/html
AddDefaultCharset utf-8
# force utf-8 for a number of file formats
AddCharset utf-8 .html .css .js .xml .json .rss

либо в php-скрипте прописать
header('Content-type: text/html; charset=utf-8');

Deff 21.02.2013 16:44

http://habrahabr.ru/post/17640/

copperfox 22.02.2013 00:43

Спасибо! помогло


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