Javascript-форум (https://javascript.ru/forum/)
-   Prototype & script.aculo.us (https://javascript.ru/forum/prototype-script-aculo-us/)
-   -   проблема с передачей русского текста в Prototype (https://javascript.ru/forum/prototype-script-aculo-us/45-problema-s-peredachejj-russkogo-teksta-v-prototype.html)

subaru 26.07.2007 13:31

проблема с передачей русского текста в Prototype
 
проблема Prototype & Русский язык

День добрый:

если проблема с передачей русского языка в Prototype.

в проекте используются 2 либы: xajax + prototype, кодировка всех страниц UTF-8, charset in xajax=utf8 too.

в xajax при передачи текста используется фунцкия: encodeURIComponent И POST-запрос имеет вид: авыфавфы ываавыфаа

encType="application/x-www-form-urlencoded"

в тоже время Prototype в POST передает данные где есть русский язык на сервер: в таком виде.
content=%u0444%u044B%u0432%u0430%u0444%u044B%u0430 %u044B%u0432%20%u044B%u0444%u0432%u0430%u044B

вот такое не помогает:


var params = 'id=' + id + '&content=' +encodeURIComponent(new_text);



поэтому, на сервере приходиться делать перекодировку и сохранять в базу символы:а&#1073 и т.п.

и из-за этого пришлось увеличить размер поля базы.

почему: потому что при запросе через xajax текст: "супер-пупер-мега-слоган" сохранялся ОК

а через Prototype. так как было преобразование в &#1072 .. влезало только "супер-"

вопрос в чем: как сделать сохранение через Prototype, чтобы работало аналогично xajax: Или передачу параметров, или еще что.



можно конечно так и оставить это поле, но это. имхо совсем не выход....

подкажите как можно решить эту проблему... плз!

Илья Кантор 26.07.2007 13:39

Дебужить надо :(

subaru 26.07.2007 16:56

Да нашел уже в чем.
есть решение простое edit-in-place и там шел вызов "ненужной" функции.
просто закоментил , так как все в UTF и та функция там не к месту :-)

проблема как всегда оказаласт не в том месте :-)


Часовой пояс GMT +3, время: 18:53.