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
Форумы портала PHP.SU :: Версия для печати :: POST, ajax, кодировка
Форумы портала PHP.SU » » Кодировки и все смежное » POST, ajax, кодировка

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

1. SERIOUS - 26 Ноября, 2011 - 18:07:18 - перейти к сообщению
я передаю через jQuer.form сообщение на php файл методом POST, так вот приходит в этот файл, это сообщение в неправильной кодировке. Все файлы провернны они в cр1251 а приходят сообщения туда на файл в utf-8 в .htaccess прописана кодировка по умолчанию cp1251. В чём ещё может быть проблема?
2. sKaa - 26 Ноября, 2011 - 18:09:59 - перейти к сообщению
Проблема твоя в том, что все запросы отправляемые через Ajax кодируются в utf-8
3. SERIOUS - 26 Ноября, 2011 - 18:13:41 - перейти к сообщению
sKaa
и этого никак не избежать? Т.е. только перекодировать на входе в cp1251?
4. tuareg - 26 Ноября, 2011 - 18:19:27 - перейти к сообщению
iconv()
5. sKaa - 26 Ноября, 2011 - 18:23:28 - перейти к сообщению
Если тебе нужно данные отправленные с помощью Ajax перекодировать на стороне пхп то

Если полученные как callback то как-то так :
CODE (javascript):
скопировать код в буфер обмена
  1.  
  2. //utf8 to 1251 converter
  3. function utf8_decode (aa) {
  4.     var bb = '', c = 0;
  5.     for (var i = 0; i < aa.length; i++) {
  6.         c = aa.charCodeAt(i);
  7.         if (c > 127) {
  8.             if (c > 1024) {
  9.                 if (c == 1025) {
  10.                     c = 1016;
  11.                 } else if (c == 1105) {
  12.                     c = 1032;
  13.                 }
  14.                 bb += String.fromCharCode(c - 848);
  15.             }
  16.         } else {
  17.             bb += aa.charAt(i);
  18.         }
  19.     }
  20.     return bb;
  21. }
  22.  
6. SAD - 26 Ноября, 2011 - 18:38:28 - перейти к сообщению
sKaa пишет:
//utf8 to 1251 converter
function utf8_decode (aa) {
var bb = '', c = 0;
for (var i = 0; i < aa.length; i++) {
c = aa.charCodeAt(i);
if (c > 127) {
if (c > 1024) {
if (c == 1025) {
c = 1016;
} else if (c == 1105) {
c = 1032;
}
bb += String.fromCharCode(c - 848);
}
} else {
bb += aa.charAt(i);
}
}
return bb;
}


извращениями заниматься не стоит
7. sKaa - 26 Ноября, 2011 - 18:48:55 - перейти к сообщению
SAD пишет:
извращениями заниматься не стоит

Ну предложи свой вариант
8. SAD - 26 Ноября, 2011 - 19:59:26 - перейти к сообщению
принял данные перекодил в 1251, отдаешь данные, если требуется - обратное кодирование. и все это на сервере
9. sKaa - 26 Ноября, 2011 - 20:08:49 - перейти к сообщению
А в чём извращение если делать это на стороне клиента?
10. Viper - 28 Ноября, 2011 - 07:52:54 - перейти к сообщению
sKaa сжирание ресурсов клиента, что не есть хорошо. Насколько быстро отработает этот скрипт при большом куску текста?

 

Powered by ExBB FM 1.0 RC1