|
blaze
|
||||||
Отправка POST с помощью XMLHTTP10.06.2006, 19:35. Показов 5605. Ответов 13
Метки нет (Все метки)
Доброе время суток!
Подскажите как правильно кодировать данные для отправки, чтобы сервер принемал текст в правильной кодировке. Здесь я привожу функцию отправки:
|
||||||
| 10.06.2006, 19:35 | |
|
Ответы с готовыми решениями:
13
Объект XMLHTTP VBA метод Post Файлы с сервера на сервер с помощью XMLHTTP Чтение содержимого русскоязычного сайта с помощью Microsoft.XMLHTTP -> ????? |
|
AlexGousev
|
|
| 11.06.2006, 15:58 | |
|
Данные нужно посылать в UTF-8. Английский посылается нормально, потому, что коды в cp1251 и UTF-8 символов латинницы совпадают.
|
|
|
blaze
|
|
| 11.06.2006, 21:34 | |
|
Пробовал кодировать в ту кодировку.. Не вышло.. Может не правильно кодирую? Как надо, напиши, если не трудно?
|
|
|
86 / 62 / 69
Регистрация: 15.03.2007
Сообщений: 6,903
|
|
| 12.06.2006, 14:47 | |
|
Попробуй использовать фукнцию encodeURI
xmlhttp.send(encodeURI(DataToSend));
0
|
|
|
blaze
|
|
| 17.06.2006, 04:54 | |
|
Пробовал и такую функцию.. Не помогает.
|
|
|
0 / 1 / 3
Регистрация: 27.03.2012
|
|
| 17.06.2006, 06:13 | |
|
xmlhttp.send(encodeURIComponent(DataToSe nd));
0
|
|
|
86 / 62 / 69
Регистрация: 15.03.2007
Сообщений: 6,903
|
|
| 17.06.2006, 13:50 | |
|
Можешь составить таблицу перекодировки русских букв в соотвествующие им коды %XX. Примерно также как было в теме http://www.relib.com/forums/FindPost898472.aspx Аналог escape() в PHP.
0
|
|
|
0 / 0 / 0
Регистрация: 31.05.2011
Сообщений: 24
|
|
| 21.06.2006, 21:45 | |
|
Могу подсказать только что делать на сервере
если версия пхп 4.6 и выше, то посмотри мануал LXXXV. Multibyte String Functions Description string mb_convert_encoding ( string str, string to_encoding [, mixed from_encoding] ) mb_convert_encoding() converts character encoding of string str from from_encoding to to_encoding. str : String to be converted. from_encoding is specified by character code name before conversion. it can be array or string - comma separated enumerated list. If it is not specified, the internal encoding will be used. **************************************** но не всем дан пхп v4.6 и выше... я как то использовала такие функции function convert($str,$from, $to){ $win = array( 'А', 'а', 'Б', 'б', 'В', 'в', 'Г', 'г', 'Д', 'д', 'Е', 'е', 'Ё', 'ё', 'Ж', 'ж', 'З', 'з', 'И', 'и', 'Й', 'й', 'К', 'к', 'Л', 'л', 'М', 'м', 'Н', 'н', 'О', 'о', 'П', 'п', 'Р', 'р', 'С', 'с', 'Т', 'т', 'У', 'у', 'Ф', 'ф', 'Х', 'х', 'Ц', 'ц', 'Ч', 'ч', 'Ш', 'ш', 'Щ', 'щ', 'Ъ', 'ъ', 'Ы', 'ы', 'Ь', 'ь', 'Э', 'э', 'Ю', 'ю', 'Я', 'я' ); $utf8 = array( 'Рђ', 'Р°', 'Р‘', 'Р±', 'Р’', 'РІ', 'Р“', 'Рі', 'Р”', 'Рґ', 'Р•', 'Рµ', 'РЃ', 'С‘', 'Р–', 'Р¶', 'Р—', 'Р·', 'Р�', 'Рё', 'Р™', 'Р№', 'Рљ', 'Рє', 'Р›', 'Р»', 'Рњ', 'Рј', 'Рќ', 'РЅ', 'Рћ', 'Рѕ', 'Рџ', 'Рї', "Р ", "СЂ", 'РЎ', 'СЃ', 'Рў', 'С‚', 'РЈ', 'Сѓ', 'Р¤', 'С„', 'РҐ', 'С…', 'Р¦', 'С†', 'Р§', 'С‡', 'РЁ', 'С?', 'Р©', 'С‰', 'РЄ', 'СЉ', 'Р«', 'С‹', 'Р¬', 'СЊ', 'Р', 'СЌ', 'Р®', 'СЋ', 'РЇ', 'СЏ' ); return str_replace($$from, $$to, $str); } function win_to_utf8($str){ $replace = array( 'А'=>'Рђ', 'а'=>'Р°', 'Б'=>'Р‘', 'б'=>'Р±', 'В'=>'Р’', 'в'=>'РІ', 'Г'=>'Р“', 'г'=>'Рі', 'Д'=>'Р”', 'д'=>'Рґ', 'Е'=>'Р•', 'е'=>'Рµ', 'Ё'=>'РЃ', 'ё'=>'С‘', 'Ж'=>'Р–', 'ж'=>'Р¶', 'З'=>'Р—', 'з'=>'Р·', 'И'=>'Р�', 'и'=>'Рё', 'Й'=>'Р™', 'й'=>'Р№', 'К'=>'Рљ', 'к'=>'Рє', 'Л'=>'Р›', 'л'=>'Р»', 'М'=>'Рњ', 'м'=>'Рј', 'Н'=>'Рќ', 'н'=>'РЅ', 'О'=>'Рћ', 'о'=>'Рѕ', 'П'=>'Рџ', 'п'=>'Рї', 'Р'=>'Р ', 'р'=>'СЂ', 'С'=>'РЎ', 'с'=>'СЃ', 'Т'=>'Рў', 'т'=>'С‚', 'У'=>'РЈ', 'у'=>'Сѓ', 'Ф'=>'Р¤', 'ф'=>'С„', 'Х'=>'РҐ', 'х'=>'С…', 'Ц'=>'Р¦', 'ц'=>'С†', 'Ч'=>'Р§', 'ч'=>'С‡', 'Ш'=>'РЁ', 'ш'=>'С?', 'Щ'=>'Р©', 'щ'=>'С‰', 'Ъ'=>'РЄ', 'ъ'=>'СЉ', 'Ы'=>'Р«', 'ы'=>'С‹', 'Ь'=>'Р¬', 'ь'=>'СЊ', 'Э'=>'Р', 'э'=>'СЌ', 'Ю'=>'Р®', 'ю'=>'СЋ', 'Я'=>'РЇ', 'я'=>'СЏ' ); for( $i=0; $i'".$str."'='".$result."'"; return $result; } в твоем случае во второй функции массив надо перевернуть (ключи и значения поменять местами) но и с этими функциями не всегда гладко проходило.
0
|
|
|
blaze
|
||||||
| 23.06.2006, 13:37 | ||||||
|
Вот эта функция, точнее модификация функции, которая преобразует русский и английский текст.
Пока решения еще не нашел. Но надо как-то преобразовывать данные отправки. Странно, но ни одна из функций: ни escape, ни encodeURIComponent и т.п. не преобразуют данные в тот вид, в который они преобразуются при обычной отправке формы. |
||||||
|
0 / 0 / 0
Регистрация: 31.05.2011
Сообщений: 24
|
|
| 23.06.2006, 14:22 | |
|
blaze, а может тебе можно не перекодировать данные вовсе, а взять за правило полученые через xmlthhprequest данные выводить тем же xmlthhprequest-ом или выводить на страничку с метой <meta http-equiv="Content-Type" content="text/xml; charset=utf-8" >
тогда браузер выведет данные в понятном всем виде...
0
|
|
|
blaze
|
|
| 23.06.2006, 14:42 | |
|
У меня полученные данные, сохраняются в ДБ MySQL.
Вот несколько результатов (введенный текст "странная кодировка"): После encodeURIComponent() выглядит так:С?С?С?Р?Р?Р?Р?С? Р?Р?Р?РёС?Р?Р?Р?Р?; после модифицированного escape() в ДБ пишется нормальный русский текст, но есть недостаток о котором я говорил выше, если данные никак не преобразовывать, странно, но на выходе получим тоже самое что и после encodeURIComponent(). Те результаты на utf8 никак не похожи. |
|
|
blaze
|
|
| 23.06.2006, 15:12 | |
|
Прошу прощения. Ошибался. Передается действительно в utf-8.
Если в конце-концов ничего не выйдет с формированием текста в JavaScript, буду тогда данные обрабатывать уже на сервере на PHP. |
|
|
blaze
|
|
| 23.06.2006, 15:23 | |
|
Идеи разные приходят в голову. Пробую.
Сейчас такой вопрос. Текст "странная кодирока" преобразован с помощью не модифицированного escape. На сервер приходит строка в таком виде "%u0441%u0442%u0440%u0430%u043D%u043D%u0 430%u044F %u043A%u043E%u0434%u0438%u0440%u043E%u04 32%u043A%u0430". Что это за кодировка? Можно ли ее на php с помощью iconv преобразовать в cp1251? Или еще вариант. Можно преобразовывать строку с помощью модифицированного escape(), а спец символы преобразовывать в такой вид "текст" |
|
|
blaze
|
|
| 24.06.2006, 19:22 | |
|
Вопрос такой возник,
Данные на сервер поступают в таком виде text1=%D1%82%D0%B5%D0%BA%D1%81%D1%82%D0% BE%D0%B2%D0%B0%D1%8F%20%D1%81%D1%82%D1%8 0%D0%BE%D0%BA%D0%B0&text2=text в text1 введен текст на русском языке "текстовая строка", в text2 - "text". В такой же вид преобразуются данные при обычной отправке формы. На сервере я получаю эти переменные: $text1 = $HTTP_POST_VARS['text1']; $text2 = $HTTP_POST_VARS['text2']; Далее расхожение в полученных данных (метод XMLHttpRequest и стандартный способ отправки формы submit) если данные были отправлены методом XMLHttpRequest, то в $text1 запишется "С?Р?Р?С?С?Р?Р?Р?С? С?С?С?Р?Р?Р?", в $text2 запишется "text". теперь, если данные были отправлены стандартным способом: в $text1 запишется "текстовая строка" в $text2 запишется "text". Почему так получается? Ведь данные конвертированы в такой же вид, в которые они конвертируются при стандартном способе? Может дело в заголовках, например не хватает какго-нибудь? Данные полученные методом XMLHttpRequest можно на сервере считать таким образом: $text1 = iconv("UTF-8", "windows-1251", $HTTP_POST_VARS['text1']); тогда в $text1 запишется "текстовая строка", но при этом спец символы потеряются. Т.е. если отправить "текстовая строка<FONT face="Times New Roman" color=#000000 size=3>ρ¥ρ™<FONT face=Verdana color=#1f5080 size=2>", то введенные спец символы после обработки iconv буду удалены. |
|
| 24.06.2006, 19:22 | |
|
Помогаю со студенческими работами здесь
14
Передача больших объемов данных c помощью MSXML2.XMLHTTP Отправка POST Отправка POST Отправка Post Отправка POST запроса Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
| Опции темы | |
|
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога
Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
|
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
|
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога
В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
|
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|
|
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога
Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
|
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
|
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования.
Часть библиотеки BedvitCOM
Использованы. . .
|
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога
SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
|