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 :: Поиск с использованием ajax

 PHP.SU

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


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

> Описание: проблема с кодировками
dmaw
Отправлено: 24 Июня, 2010 - 12:07:27
Post Id



Частый гость


Покинул форум
Сообщений всего: 227
Дата рег-ции: Сент. 2009  
Откуда: Беларусь, Витебск


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




Исходник - http://htmlweb[dot]ru/ajax/example/search.php
Из базы данных выводит русские тексты иероглифами или кубиками, как поправить не знаю, скорее всего нужно чего-то дописать в ajax_framework.js
Пожалуйста, помогите разобраться.
 
 Top
Viper
Отправлено: 24 Июня, 2010 - 12:19:13
Post Id



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


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


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




костыль тут у вас будет толстый, большой и неповротливый. ajax работает только с utf-8 и никакие ухищрения с указанием charset в script не помогут. есть 3 варианта.
1. сделать нормальную базу в utf-8(либо конвертировать текущую). ЗЫ! Забудьте про виндовозные кодировки аля cp1251, koi8-r и прочую фигню.
2. использовать iconv, что не всегда работает корректно. и опять же костыль
3. либо использовать ещё один костыль который находится по адресу http://javascript[dot]ru/forum/ajax/[dot][dot][dot]1251-v-ajax[dot]html

(Отредактировано автором: 24 Июня, 2010 - 12:19:44)



-----
Список фильмов с описанием, блекджеком и... для Joomla? -> https://киноархив[dot]com
Демо нового движка для сайта php.su -> php[dot]su, проект на гитхабе
 
 Top
SAD
Отправлено: 24 Июня, 2010 - 12:19:34
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2508
Дата рег-ции: Май 2009  
Откуда: Днепропетровск, Украина


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




вся проблема в кодировке. пост данные приходят в utf-8 . измените кодировку в обрабатывающем файле с помощью
PHP:
скопировать код в буфер обмена
  1. iconv('UTF-8', 'windows-1251', 'ваши пост данные')
на windows-1251
 
 Top
dmaw
Отправлено: 24 Июня, 2010 - 14:55:25
Post Id



Частый гость


Покинул форум
Сообщений всего: 227
Дата рег-ции: Сент. 2009  
Откуда: Беларусь, Витебск


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




Спасибо, с кодировками разобрался.
 
 Top
JustUserR
Отправлено: 24 Июня, 2010 - 15:44:38
Post Id



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


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


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




Viper пишет:
Костыль тут у вас будет толстый, большой и неповротливый. ajax работает только с utf-8 и никакие ухищрения с указанием charset в script не помогут. есть 3 варианта.
Можно решить данную проблему и с клиентской стороны без использования перекодировок - можно привести передаваемые данные в urlencoded-вид с помощью JS-функции encodeURIComponent и передавать на сервер данные в виде неизменяемых символов Главное при запросе указать исходную кодировку в Accept-charset или Content-type для POST-запросов - чтобы обрабатыващий PHP-скрипт знал каким образом происхдть urlencode-декодирование


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
Viper
Отправлено: 24 Июня, 2010 - 16:05:49
Post Id



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


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


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




JustUserR почитайте посты по приведенной ссылке. там описаны проблемы данных методов.


-----
Список фильмов с описанием, блекджеком и... для Joomla? -> https://киноархив[dot]com
Демо нового движка для сайта php.su -> php[dot]su, проект на гитхабе
 
 Top
JustUserR
Отправлено: 24 Июня, 2010 - 16:17:41
Post Id



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


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


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




Viper пишет:
JustUserR почитайте посты по приведенной ссылке. там описаны проблемы данных методов.
Действительно интересная проблема - однако если использовать передачу данных через iframe-элемент и указывать явно кодировки и локали соответствующих элементов - то все работает и так


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
Viper
Отправлено: 25 Июня, 2010 - 08:04:16
Post Id



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


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


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




JustUserR тогда зачем ajax? можно и так iframe использовать. но это ж не стандартный метод.


-----
Список фильмов с описанием, блекджеком и... для Joomla? -> https://киноархив[dot]com
Демо нового движка для сайта php.su -> php[dot]su, проект на гитхабе
 
 Top
JustUserR
Отправлено: 26 Июня, 2010 - 19:51:02
Post Id



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


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


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




Viper пишет:
JustUserR тогда зачем ajax? можно и так iframe использовать. но это ж не стандартный метод.
В принципе использование обмена данными через iframe и предполагалась как альтернатива классическому ajax - при этом такой метод с iframe хоть и является специфическим но ничем не хуже ajax-а - ведь с его использование можно также делат асинхронные запросы и показывать уровни загрузки и помимо прочего за счет отказа от ActiveX-элементов пропадают все проблемы с кодировкой элементов - и к тому же ее явно можно указать с помощью document.charset и изменять локали элементов с помощью аттрибута language
Поэтому как замену методу со ссылке можно привести следующую схему - сначала опредяляется кодировка документа и соответственно всех данных на нем - после этого используются таблицы по которым берется charAt для передаваемой строки и получается его номер в частности в шестнадцатиричном виде - и в итоге передается реальная 7-битовая строка в urlencoded-виде


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« JavaScript & VBScript »


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB