Реализация русских кодировок в AJAX

Статус
В этой теме нельзя размещать новые ответы.

RALF

черный рыцарь
Регистрация
1 Май 2006
Сообщения
114
Реакции
26
Добрый всем день!

Надеюсь все хорошо провели новогодние деньки!

Тут копался с одним классом, а именно:

Класс взят с phpclasses.org

Автор класса - Gustavo Arcila

Страница класса -


Итак к проблеме: В работе этого класса появились существенные проблемы. Русский язык работает, но если у тебя не одна таблица данных и есть постраничный вывод, то когда ты нажимаешь на страницу номер 2 например, то вылетает страница вместо русских символов ромбики с иероглифами.

Я давно знаю что есть большая проблема у AJAXa с русскими кодировками. Побрел по инету, читал на форумах и многие пишут что проблему с AJAX - русские кодировки можно решить с помощью .

Вроде всё есть под рукой и класс и библиотека для решения кодировок. Не знаю как это сделать! Есть ли у кого каки-нибудь советы ...
Могу сделать принскрин экрана когда возникает баг.

С чего начать? Пользовался ли кто этой библиотекой ?

Заранее благодарен! :bc:

P.S. скачать класс и библиотеку можно из вложений! ;)
 

Вложения

  • phpmydatagrid-2007-08-03.zip
    598 KB · Просмотры: 2
  • JsHttpRequest(2).zip
    149,9 KB · Просмотры: 0
Уже не раз про это писалось, но повторюсь, алгоритм простой:

программируешь на JS и есть русский язык => используй кодировку UTF-8

И вообще, давно пора все сайты на эту кодировку переводить.

UTF-8 вообще все проблемы с кодировкой снимает, в том числе с сортировкой.

С этой либой работал, тоже где-то на форуме описывал все про нее. Вкраце, ее стоит использовать только если совсем не получается избавится от античных кодировок. Еще одна фишка в ней типа дебаг, но есть более мощные средства встраиваемые в браузер. Все остальное в либе гиморой.
p.s. Лично я не рекомендую либой пользоваться, одни ob_start чего стоят :)
 
Траблы с кодировкой решаются 2-мя функциями, работающими с 1 массивом (типа - кривая кодировка- нормальная кодировка).
 
Для просмотра ссылки Войди или Зарегистрируйся может быть это и решение моей проблемы! Насчет utf-8 давно думал. Знал что с помощью этой кодировки проблем вообще не будет, но просто хотелось сделать это по-иному.

Для просмотра ссылки Войди или Зарегистрируйся - Ты насчет функции замены в классе говоришь, которая заменяет символы одни на другие?
 
Я встречал минимум 3 типа сбоев в работе кодировок. Один из них лечится вот этим классом (можете и избавиться от этого "недостатка").

Перед приемом/отдачей из базы просто сделай decode/encode.

PHP:
<?php
class JS_encoding
{	
	public  $rus_chars;
	public  $rus_codes;
	
	function __construct()
	{	$this->rus_chars = array('А','Б','В','Г','Д','Е','Ё','Ж','З','И','Й','К','Л','М','Н','О','П','Р','С','Т','У','Ф','Х','Ц','Ч','Ш','Щ','Ъ','Ы','Ь','Э','Ю','Я','а','б','в','г','д','е','ё','ж','з','и','й','к','л','м','н','о','п','р','с','т','у','ф','х','ц','ч','ш','щ','ъ','ы','ь','э','ю','я');
		$this->rus_codes = array('%u0410','%u0411','%u0412','%u0413','%u0414','%u0415','%u0401','%u0416','%u0417','%u0418','%u0419','%u041A','%u041B','%u041C','%u041D','%u041E','%u041F','%u0420','%u0421','%u0422','%u0423','%u0424','%u0425','%u0426','%u0427','%u0428','%u0429','%u042A','%u042B','%u042C','%u042D','%u042E','%u042F','%u0430','%u0431','%u0432','%u0433','%u0434','%u0435','%u0451','%u0436','%u0437','%u0438','%u0439','%u043A','%u043B','%u043C','%u043D','%u043E','%u043F','%u0440','%u0441','%u0442','%u0443','%u0444','%u0445','%u0446','%u0447','%u0448','%u0449','%u044A','%u044B','%u044C','%u044D','%u044E','%u044F');
	}
	function encode($string)
	{	return str_replace($this->rus_chars,$this->rus_codes,$string);
	}
	function decode($string)
	{	return str_replace($this->rus_codes,$this->rus_chars,$string);
	}
}
?>


А вообще - неплохо было бы уточнить, когда возникает баг. Просто, я так понимаю, проблемы возникают в ослике... да?
 
  • Нравится
Реакции: RALF
Класс неплохой! Попробую сделать Decode/Encode!

Баг возникает, когда я переключаю страницы, т.е у Меня где то 1000 записей в таблице, Они разбиты постранично автоматом. Когда грузится 1-ая страница кодировка работает нормально, когда переключаю на 2 или 3 и т.д. страницу возникает баг кодировки.

Баг был замечен в ослике и мозилле и опере!

Использовал кодировку windows-1251!
 
Если трабла в трех браузерах - значит трабла не в браузерах... Ты уверен, что у тебя вторая страница отдается в нужной кодировке?

Может, используется что-то типа переподключения к базе при выводе второй паги? Тогда там может быть опущен параметр вывода из базы...

Попробуй спровоцировать вывод xml в браузер непосредственно... Минуя JS-обработчики
 
Если баг есть в трех браузерах то пользуем firefox+firebug не встречал того, чего бы он не мог отловить :)
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху