Я передаю через POST русский (да вообще любой) текст (у меня форма и используется AJAX). Текст передаётся в виде %3Cp%3E%0A%09%D0%A2%D0%B5%D0%BA%D1%81%D1%82%2C+%D0%B2%D1%8B%D0
спасибо, только как вызывать этот метод? если ^JSHttpRequest.decodeText[%3Cp%3E%0A%09] - то это выдает ошибку, если ^JSHttpRequest:decodeText[%3Cp%3E%0A%09] то требует чтобы результат в хеш передавался, а он в итоге оказывается пустой.
ну соответственно у же на стороне сервера: $bodyh[^hash::create[^JSHttpRequest:decodeRequest[]]] $body[] ^bodyh.foreach[key;value]{ ^if($key eq update_minipageblock){ $bbb[^hash::create[^JSHttpRequest:decodeRequest[]]] $body[] ^bbb.foreach[key;value]{ $body[$key=$value&$body] } ^void:sql{update pages_ru set name='^get_parametr[$body;name]', text='^get_parametr[$body;text]', active='^get_parametr[$body;isactive]',text2='^get_parametr[$body;text2]', text3='^get_parametr[$body;text3]' where id=^get_parametr[$body;id]} } }
и маленькая проблемка) - как заставить JQUERY передавать параметры? т.е. если вот так передовать $.post('/admin/funcs/', { 'update_minipageblock' : '1','id':$("#minipage_id").val(),'name':$('#minipage_name').val(), ....
то ничего не передаётся(смотрю в FireBug), однако если в консоли открыть запрос в новой вкладке то все параметры передаются.
1)если смотреть на пост запрос в консоли firebug то $form не работют,т .е. только если $response.body и т.д. в таком варианте надо использовать ^JSHttpRequest:decodeRequest[] и тогда отображается всё номально кроме русского текста
2) если же в консоли firebug правой кнопкой на запросе-> показать в новом окне. то в этом случае уже $form:... работают и!!! русский текст показывается нормально без ^JSHttpRequest:.
Только надо смотреть не в новом окне, а просто разворачивать запрос (кликать на него один раз). Там должны быть соотв. табы со всей информацией: Headers Post Response JSON
1) смотрю вкладки запроса: в Post всё отображается как надо в HTML русский текст в html-encoded в ОТВЕТ - пусто!!! а должно отображаться $form:text (text - это параметр который я в пост-запросе передаю). А вот если открыть запрос в новом окне то я увижу содержимое $form:text
а как это сделать? на сервер руский текст приходит криво - где икать проблему? фаербаг показывает что в пост запросе текст русский отображдается нормально.
Проверить ещё раз везде кодировки (в том числе и в закладке Headers). Уверены, что текст приходит криво? $response:body в файл сохраняли? Парсер точно последний?
парсер вроде последний (так говорит админ) - а как можно проверить?
из информации из firebug
Content-type у ответа: Content-Type text/html; charset=WINDOWS-1251
Content-type у запроса: Content-Type application/x-www-form-urlencoded; charset=UTF-8
вижу что они разные хотя в @auto[] указано так: $request:charset[windows-1251] $response:charset[windows-1251] $response:content-type[ $.value[text/html] $.charset[$response:charset] ]
я сам не понимаю почему так: если я смотрю прям в консоли firebug'a то там русский текст на закладке ответ может выдаваться только если в парсерном файле выводить его через request.body и выводиться он в хтм-энкодед. если же открыть данный пост запрос в новой вкладке то тогда выводится текст нормально и причём его можно вывести через $form...вот. поэтому когда я писал про то что всё заработало - это заработало для отображения запроса в новой вкладке. а так на самом деле всё по старому
сделайте правильно, потом продолжайте разбираться и проверять записью значения form с русскими буквами в файл (а про ручное декодирование упомянутым классом забудьте)
и сначала разберитесь со входящими данными, и только потом будете разбираться с исходящими ($response:charset влияет и на входящие данные)
P.S. приводите код, т.к. угадать что именно вы сделали -- не получается.
P.P.S. прочитайте FAQ по использованию форума и используйте [code/]
Вам уже несколько раз написали, что надо забыть про ответ с сервера. Он тут пока не важен. И вместо JSHttpRequest надо взять данные из формы и положить их в файл: