Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Отправка UTF 8 из IE в php

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: Как победить IE ?
Delovoy
Отправлено: 19 Ноября, 2012 - 17:12:49
Post Id


Новичок


Покинул форум
Сообщений всего: 63
Дата рег-ции: Нояб. 2010  


Помог: 0 раз(а)




Столкнулся с непонятной для себя задачаей

AJAX запрос, который отправляет из браузера имя фамилию и отчество клиента не работает в IE 8

Точнее работает, но передает данные в какой-то странной кодировке
Тот же самый механизм в FireFox все передает корректно

При просмотре через отладчик в php скрипте получаемые данные выглядят как
�����

Из браузера отправляю данные с помощью jquery.ajax

CODE (javascript):
скопировать код в буфер обмена
  1. $.ajax({
  2.             type: "GET",
  3.             headers: {
  4.                 "Accept" : "application/json, text/javascript, */*; q=0.01",
  5.                 "Accept-Language": "ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3",
  6.                 "Content-Type" : "application/x-www-form-urlencoded; charset=UTF-8",
  7.                 "User-Agent": "Mozilla/5.0 (Windows NT 5.1; rv:15.0) Gecko/20100101 Firefox/15.0"
  8.             },
  9.             data: dataparam,
  10.             url: url,
  11.             cache: false,
  12.             dataType: "json",
  13.             success: function(response){
  14.                alert(response['res_code']+' text: '+response['res_text']);
  15.  
  16.             },
  17.             error: function(response, oberr, ErrMsg) {
  18.  
  19.                 alert(ErrMsg);
  20.             }
  21.         });


На всякий случай даже User-Agent выставил принудительно как Mozilla/5.0 ...
не помогло

посмотрел отправляемые заголовки, все одинаково за исключением данных

IE
GET /Webserver/tcis_ajax_mytest.php?&FName=Иванов&LName=Петров&MName=Сидоров&_=1353336288640 HTTP/1.1

FF
GET /Webserver/tcis_ajax_mytest.php?&FName=%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2&LName=%D0%9F%D0%B5%D1%82%D1%80%D0%BE%D0%B2&MName=%D0%A1%D0%B8%D0%B4%D0%BE%D1%80%D0%BE%D0%B2&_=1353336233998 HTTP/1.1

Какие есть предположения ?
 
 Top
caballero
Отправлено: 19 Ноября, 2012 - 17:17:39
Post Id


Активный участник


Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011  
Откуда: Харьков


Помог: 126 раз(а)




предположение простое - не выставил кодировку страницы

PHP:
скопировать код в буфер обмена
  1.   Header("Content-Type: text/html;charset=UTF-8");

(Отредактировано автором: 19 Ноября, 2012 - 17:19:56)



-----
Бесплатная система складского учета с открытым кодом https://zippy[dot]com[dot]ua/zstore
 
 Top
EuGen Администратор
Отправлено: 19 Ноября, 2012 - 17:18:59
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)





+
PHP:
скопировать код в буфер обмена
  1. header('Content-Type: text/html; charset=utf-8');

+
encodeURI
?


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
Delovoy
Отправлено: 19 Ноября, 2012 - 17:20:57
Post Id


Новичок


Покинул форум
Сообщений всего: 63
Дата рег-ции: Нояб. 2010  


Помог: 0 раз(а)




В самой странице стоит кодировка

CODE (html):
скопировать код в буфер обмена
  1. <head>
  2.     <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  3. ...


но насколько я понимаю, если в ajax я явно указываю, что отправлять в utf-8 то что стоит в самой странице, не так важно

Проблема пока остается
(Добавление)
EuGen пишет:
header('Content-type: text/html; charset=utf-8');


У меня в header на php стоит возвращать Content-Type: application/json;
Т.к. в ajax запросе также стоит json

Но проблема возникает не в момент отправки данных из php через ajax на клиента, а раньше в момент получения из ajax

Причем только в IE
(Добавление)
Помогло принудительное кодирование на клиенте - функция encodeURIComponent

тему можно закрывать
 
 Top
caballero
Отправлено: 19 Ноября, 2012 - 18:10:27
Post Id


Активный участник


Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011  
Откуда: Харьков


Помог: 126 раз(а)




Цитата:
Но проблема возникает не в момент отправки данных из php через ajax на клиента, а раньше в момент получения из ajax

потому и возникает что не стоит
Цитата:
header('Content-type: text/html; charset=utf-8');


-----
Бесплатная система складского учета с открытым кодом https://zippy[dot]com[dot]ua/zstore
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Кодировки и все смежное »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB