Попробовал JSON
header('Content-Type: text/plain; charset=windows-1251'); $response = array("formdata"=>"Русский"); echo json_encode($response); respobj = eval('('+xmlhttp.responseText+')'); alert(respobj.formdata) Во всех браузерах Выводит пустое свойство, проверил полный текст респонса Код:
{"formdata":null} Код:
{"formdata": ""} Что это может означать? Проблема кодировки страницы? |
вы знаете.
я не сам особо не использовал JSON PHP, поэтому дал немного лодную надежду на простоту. я сейчас прошерстил пару ресурсов, и выяснил, что под PHP реализация JSON меняется от версии к версии. более того помимо встроенных функций генерации есть еще куча сторонних библиотек короче говоря не все так просто на стороне ПХП,как мне думалось что же до конкретно вашего примера, то мне удалось заставть его работать, используя строку не в CP1251, а в UTF-8 при этом строка декодируется в escape-последовательности, которые отлично расшифровываются на стороне сервера |
Проблема решена, надоело маяться с придирчивыми стандартными функциями, сделал свой транспорт, всё работает. Как говорится "хочешь 100% работу - сделай сам ;)", а утф 8, пробовал респонс приходит с пустой строкой {"formdata": ""}, как и при 1251...
|
я имел в виду не заголовки с которыми идет, а сама строка должны быть в UTF-8
сохраните скрипт генерирующий в кодировке utf-8 либо используйте iconv() |
Цитата:
|
dmitlantis, в соответствии с rfc, строки должны быть в одной из Unicode-кодировок. В мануале это требование указано. Кроме того, там же в комментариях есть решение с помощью iconv - http://ua.php.net/manual/en/function...code.php#72450
|
x-yuri,
и вправду. лично у меня возникает вопрос, как тогда передавать двоичные данные? повторюсь, с JSON я общался не сильно тесно, и хтелось бы узнать как оно в таком случае делается |
Цитата:
|
да зачем угодно
JSON может использоватся в десятках языках, и поэтому его можно использовать как транспорт между ними. в JS я слабо представляю задачу тербующую передачи бинарных данных(если не притягивать за уши, и не брать во внимание старые вирусы) в других языках спокойно можно придумать ряд задач. вопрос был задан скорее из любопытства. |
Цитата:
Если сильно хочется, base64 в помощь. |
Часовой пояс GMT +3, время: 14:21. |