Единый форум поддержки

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » Единый форум поддержки » Архив » Почему в Аякс - Запросах русские Символы отражаются Кракозябрами ?


Почему в Аякс - Запросах русские Символы отражаются Кракозябрами ?

Сообщений 1 страница 20 из 20

1

Кодировка (языковая)

Если Вы используете только UTF-8 - пропустите эту секцию.

Все идущие на сервер параметры GET/POST, кроме случая multipart/form-data, кодируются в UTF-8. Не в кодировке страницы, а именно в UTF-8. Поэтому, например, в PHP их нужно при необходимости перекодировать функцией iconv.

// ajax.php
$name = iconv('UTF8','CP1251',$_GET['name']);

С другой стороны, ответ с сервера браузер воспринимает именно в той кодировке, которая указана в заголовке ответа Content-Type. Т.е, опять же, в PHP, чтобы браузер воспринял ответ в windows-1251 и нормально отобразил данные на странице в windows-1251, нужно послать заголовок с кодировкой в php-коде, например так:

// ajax.php
header('Content-Type: text/plain; charset=windows-1251');


Или же, такой заголовок должен добавить сервер. Например, в apache автоматически добавляется кодировка опцией:

# в конфиге апача
AddDefaultCharset windows-1251

Вот у мну, такое ощущение, что дело тут не в UTF-8, а в настройках сервера в формате ответа на Аякс запрос

Собственно вопрос приспичил с думой о более шустрой реализации прикрепления Первого Сообщения к теме. (Если посмотреть, есть еще Пару востребованных скриптов, которые портит именно отсутствие правильности в кодировке.

Т.е есть версия - что заголовок ответа UTF-8, а кодирование в windows-1251, или наоборот
браузер ожидает-воспринимает данные в соответствии с исходным кодом текущей страницы windows-1251, а сервер отсылает в UTF-8, без перекодировки русских символов( поскольку все не_латинские символы - отражаются одним и тем же кодом - символ �
Ps: (Периодически, изредка, - самый первый запрос, иногда получается в верной кодировке

Т.е нормальная реализация есть и возможна!

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

Заказ новых скриптов пост №926

Отредактировано Deff (Ср, 19 Окт 2011 10:30:01)

+1

2

тоже интересует этот вопрос

0

3

http://habrahabr.ru/blogs/webdev/17640/
Просто не Хватает PHP скрипта на стороне сервера
Для GET запросов

Всё, что надо сделать, чтобы теперь работать
в PHP в
нормальной кодировке использовать iconv:

$f = iconv('UTF-8', 'windows-1251', $_GET['f']);

Для Post запросов

А для того, чтобы сервер отдавал яваскрипту в правильной кодировке (т.е. в такой же кодировке, в которой отдаются все xhtml страницы) просто в начале вашего ajax.php пропишите заголовок:

header('Content-type: text/html; charset=windows-1251');

И всё будет ок.

Отредактировано Deff (Ср, 14 Дек 2011 11:53:54)

0

4

Deff
Все страницы на форумах отдаются в Windows-1251. Перекодировать из UTF-8 необходимости нет.
Сервер возвращал Content-Type: text/html без указания кодировки, что ни на что не влиет, кроме, быть может, аякс запросов. Кодировку я прописал, но запрашивать HTML страницы аяксом остается не лучшей идеей. Во-первых это неоправданная нагрузка, а во-вторых лишний трафик для пользователя.

Если есть необходимость в получении определенных данных, то лучше сделать API. На примере export.php, но для более широких целей. Если есть желание, то можешь написать список методов, с указанием входных и возвращаемых данных. В принципе, если будет подробное описание того, что требуется скриптерам, – я готов это реализовать.

+4

5

Admin

Admin написал(а):

Все страницы на форумах отдаются в Windows-1251

Да суть была именно в отсутсвии указания кодировки при аякс запросах..

Сейчас Всё ок - пасибо...!
--

Admin написал(а):

Если есть необходимость в получении определенных данных, то лучше сделать API.

Эээ, ну пока
   Первый пост темы, (сейчас фреймами), отдаем серверу адрес темы, получаем HTML контент
   Вывод опроса на главную - отдаем серверу адрес темы, HTML контент
   Список новых входящих сообщений -отдаем id юзера (хотя тут наверно на автомате текущее id,) cервер отдаёт - HTML контенты tr(из таблицы) новых сообщений

По идее, по первым трём пунктам возможно проще создать универсальное API с указанием адреса и cелектора затребованого блока контента(тогда для третьего пункта Типо:

http://forum.mybb.ru/messages.php?id=22787#messages fs-box


Ах, да - самое жручее ресурсы: - список пользователей Oline с Аватарками (перезапрашиваем профиль каждого юз-ра для считывания Аввы
Т. е нужен список пользователей Oline с их id и Аватарками и адресом его местонахождения (* темы или форума). Желательно так же иметь и гостей с их ip , тогда можно вывести и список ботов, *если есть сомнения в отдаче IP гостей, - ботов можно пропарсить и на сервере,(Для аналогии - Скрипт тут => пост 19

- /Думаю будет самый востребованный вид запроса (остальные все: - реже по общему числу запросов) Вид запроса на Ваше усмотрение

Отредактировано Deff (Ср, 14 Мар 2012 00:18:27)

0

6

PS: Неплохо было бы не учитывать аякс запросы в страницах посещенных пользователем:
Почему? => Это приводит к глюку в Активных пользователях,(к примеру, чел на главной, аякс запрос на новые личные сообщения - итог - в Списке Активных - он читает личные сообщения, хотя он об этом может даж и не подозревать) Что приводит к необходимости лишнего(последнего) перезапроса к серверу, возвращающего пользователя на текущую страницу

Отредактировано Deff (Вт, 13 Мар 2012 21:40:00)

0

7

Ого! Admin, большое спасибо :)

Deff, лучше организовать дискуссию среди тех, кто делает скрипты насчёт возможностей и синтаксиса API, чтобы и возможностей было побольше и API-запросы были удобны для использования. В результате обсуждения сформировать готовый вариант.
И затем этот вариант, который всех (или большинство) устроит, представить Admin'у.

Предлагаю обсуждать API МуВВ в соответствующей теме.

0

8

Admin написал(а):

В принципе, если будет подробное описание того, что требуется скриптерам, – я готов это реализовать.

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

--

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

member_id                путь к профилю пользователя
member_name         ник пользователя
member_avatar        URL изображения аватара пользователя

так же с этими данными можно было бы реализовать всплывающий минипрофиль при наведении курсора на пользователей в статистике, тех кто online и Посетилей за сутки

+1

9

Romych, хорошая идея.
Но я думаю следует подготовить подробное описание готового функционала API, а также использовать формат XML. Чем лучше его JSON?
А вот так... по кускам -- это и так нужно одну скриптёру, это и по-другому второму... так трудно будет и реализовать и использовать.

Стандартизация и спецификация - вот ключ к успеху  --

0

10

RUSSIAN_GOBLIN написал(а):

А вот так... по кускам -- это и так нужно одну скриптёру, это и по-другому второму... так трудно будет и реализовать и использовать.

Deff написал(а):

По идее, по первым трём пунктам возможно проще создать универсальное API с указанием адреса и cелектора затребованого блока контента

По некоторым, специфическим запросам, требующим объединения с нескольких страниц - пока единого вида запроса - у меня, к примеру,  пока мыслей нет, можно кнешн разбить его к вышеприведенному виду - но будет ли это Айс ? по скорости и по колву обращений и нагрузке на сервер...

Отредактировано Deff (Вт, 13 Мар 2012 22:51:34)

0

11

RUSSIAN_GOBLIN написал(а):

также использовать формат XML. Чем лучше его JSON?

JSON и XML. Что лучше?

RUSSIAN_GOBLIN написал(а):

Стандартизация и спецификация - вот ключ к успеху

с этим абсолютно согласен!

0

12

RUSSIAN_GOBLIN написал(а):

использовать формат XML. Чем лучше его JSON

RUSSIAN_GOBLIN
прочитал про разницу?

0

13

Romych написал(а):

прочитал про разницу?

Да, JSON рулит  :yep:

Но с ним как я понял есть проблема из-за кодировки... или уже, после изменений Admin'ом, не должно быть её?

Отредактировано RUSSIAN_GOBLIN (Ср, 14 Мар 2012 00:45:24)

0

14

o.O В Принципе, тут Всем троим проявившим интерес к данной теме(и пользователям обслуживаемым авторскими скриптами )- было  бы интересным решения Post аякс запроса на запись.

Включающий по минимуму: -  Создание темы и отправка сообщения в тему от Имени Forum_Bota, с возможностью - правки-редактирования данного сообщения(при редактировании отдаём полный адрес поста https://forum.mybb.ru/edit.php?id=746311, данное новведение позволило бы реализовать
а) Нормальный магазин форум - принадлежностей
b) Расширенную статистику
с) Наградную страницу пользователя

Думаю запрос максимум один раз за одну текущую сессию одного пользователя в общей сумме при реализации  всех хотелок...

Отредактировано Deff (Ср, 14 Мар 2012 01:14:16)

0

15

Deff, все хотелки сюда: API MyBB

И просьба описывать свои хотелочки языком понятным программисту, а не "нормальный", "обычный" и "ну сам понимаешь".
Чтобы реализовать что-то нужно чёткое техническое задание, тобишь ТЗ  :glasses:

0

16

RUSSIAN_GOBLIN
Cобственно не командуй - молод ыщо - по мне, в третьих - завёл тему - и отпишись там - дабы интересно было вступать в дискуссию, а то тут тип второго начальства  выступашь...

0

17

Deff, сабж этой темы - кракозябры в результатах аякса вместо русских символов.
Admin исправил что-то там на сервере и проблемы больше нет.

А для обсуждения API должна быть своя тема.

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

0

18

RUSSIAN_GOBLIN написал(а):

Deff, сабж этой темы - кракозябры в результатах аякса вместо русских символов.

проблема с выполнением аякс запроса(ответ строго utf-8 независимо от кодировки страницы), а в каком формате идет ответ глубоко пофигу, все равно все это текст)

0

19

тему можно в Архив, ибо исправлено

0

20

Romych написал(а):

тему можно в Архив, ибо исправлено

ок :)

0


Вы здесь » Единый форум поддержки » Архив » Почему в Аякс - Запросах русские Символы отражаются Кракозябрами ?