Форум программистов, компьютерный форум, киберфорум
Java EE (J2EE)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/3: Рейтинг темы: голосов - 3, средняя оценка - 5.00
Эксперт Java
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220

Iphone encoding

11.08.2017, 15:55. Показов 637. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
есть сайтик, на нем формочка. в венде работает норм.
Однако, если эту формочку отправлять с iphone, на сервер вместо "абвгдеж" передается что-то вроде
Code
1
%E0%E1%E2%E3%E4%E5%E6
Собственно вопрос, что это за кодировка, что с этим делать, как сделать utf8?

Добавлено через 15 минут
т.е.
Если отправлять формочку из хрома, текст приходит в utf8.
Если отправлять в режиме эмуляции iphone, приходит в cp1251.
непосредственно с iphone негде проверить, но там тоже проблемы с кодировкой.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
11.08.2017, 15:55
Ответы с готовыми решениями:

Primefaces -> dataExporter -> encoding -> cyrillic
всем доброго времени суток... я разбираюсь с Primefaces... Меня заинтересовал вот этот пример:...

XML decoding & encoding
На проекте на тест-сервеhах данные в XML прописаны в таком виде: &#u044B; Подскажите что за кодировка и как обычный текст...

Spring + jquery request encoding
Делаю автозаполнение при вводе. Все работает хорошо, но предлагать варианты русского не хочет. Проверил что получает контроллер на входе:...

6
 Аватар для KuKu
1563 / 1041 / 94
Регистрация: 17.04.2009
Сообщений: 2,995
11.08.2017, 22:45
Это uri encoding/percent encoding. По историческим причинам, урлы работают с ascii. Когда надо отправить что-то другой, то не ascii символы преобразуются в это добро.
Проблема скорее всего в том, что или на айфоне кто-то два раза энкодит из строки в uri encoding. Или серверная часть не умеет с этим работать (что довольно странно)
0
Эксперт Java
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
11.08.2017, 23:59  [ТС]
Цитата Сообщение от KuKu Посмотреть сообщение
Или серверная часть не умеет с этим работать (что довольно странно)
как бы серверная часть ожидает utf-8
В ответе от сервера приходит Content-Type: text/html;charset=UTF-8
Однако из формы отправляется cp1251.
Как бы детектить на стороне сервера кодировку - это какой-то мрак, мне кажется.
Может еще какие-то заголовки надо добавить, или какой-нибудь хитрый костыль специально для iphone есть, например?
0
 Аватар для KuKu
1563 / 1041 / 94
Регистрация: 17.04.2009
Сообщений: 2,995
12.08.2017, 00:49
get или post? и какой enctype?
0
Эксперт Java
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
12.08.2017, 09:56  [ТС]
Цитата Сообщение от KuKu Посмотреть сообщение
get или post? и какой enctype?
POST
Content-Type: application/x-www-form-urlencoded
0
Эксперт Java
378 / 370 / 114
Регистрация: 30.06.2010
Сообщений: 1,445
12.08.2017, 10:18
Снифером запрос смотрел? что там по факту? Какие заголовки передает клиент? Что за эмулятор iphone? С веба utf8 приходит скорее всего потому что страница содержит utf8 заголовок. Причем данные идут я так понимаю в теле? Там не должно быть преобразований и перекодировок

Добавлено через 1 минуту
вообще странно эмулятор работает, ios это unix, там везде utf8
0
Эксперт Java
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
12.08.2017, 14:50  [ТС]
Цитата Сообщение от LeX Посмотреть сообщение
Снифером запрос смотрел?
фиддлером смотрю

Такие заголовки уходят из хрома, текст в форме уходит в нормальной кодировке, например S_firstname=%D0%B9%D1%86%D1%83 - это utf8
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
POST url HTTP/1.1
Host: host
Connection: keep-alive
Content-Length: 1108
Cache-Control: max-age=0
Origin: origin
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.90 Safari/537.36
Content-Type: application/x-www-form-urlencoded
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
Referer: referer
Accept-Encoding: gzip, deflate, br
Accept-Language: ru-RU,ru;q=0.8,en-US;q=0.6,en;q=0.4
Открываем в хроме консольку, включаем device toolbar, выбираем iphone6 в качестве устройства. Тот же текст с той же формы уходит в таком виде: S_firstname=%E9%F6%F3 - это cp1251
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
POST url HTTP/1.1
Host: host
Connection: keep-alive
Content-Length: 994
Cache-Control: max-age=0
Origin: origin
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.90 Safari/537.36
Content-Type: application/x-www-form-urlencoded
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
Referer: referer
Accept-Encoding: gzip, deflate, br
Accept-Language: ru-RU,ru;q=0.8,en-US;q=0.6,en;q=0.4

При открытии страницы с формой клиент посылает
Code
1
2
3
4
5
6
7
8
9
GET url HTTP/1.1
Host: host
Connection: keep-alive
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.90 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
Referer: referer
Accept-Encoding: gzip, deflate, br
Accept-Language: ru-RU,ru;q=0.8,en-US;q=0.6,en;q=0.4
Сервер отвечает:
Code
1
2
3
4
5
6
7
8
9
10
11
HTTP/1.1 200 OK
Date: Sat, 12 Aug 2017 09:58:54 GMT
Server: Apache-Coyote/1.1
X-Content-Type-Options: nosniff
X-Frame-Options: SAMEORIGIN
X-XSS-Protection: 1
Liferay-Portal: Liferay Portal Community Edition 6.2 CE GA5 (Newton / Build 6204 / November 25, 2015)
Content-Type: text/html;charset=UTF-8
Keep-Alive: timeout=10, max=95
Connection: Keep-Alive
Content-Length: 52737
Добавлено через 1 час 48 минут
Нашел источник проблемы. Какая-то кривая jquery либа перед отправкой создает новую форму, текст который ей приходит в url encode, декодирует, записывает в эту форму, потом на новой форме делает submit. Ненавижу js.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
12.08.2017, 14:50
Помогаю со студенческими работами здесь

Проблема с Encoding->Auto-Select в IE 5.5 при работе с сервлетами и JSP
Здравствуйте. проблема: есть сервлет, который форвардит на разные JSP как результат выполнения запроса. На этих JSP прописано вроде...

Конвертирование строки в байты через getBytes(encoding), странные результаты
public static void main(String args) throws UnsupportedEncodingException { String s0="H\u00ebllo"; String s1="Hëllo"; ...

Как избавится от Mime-Version: 1.0 Content-Type: text/plain Content-Transfer-Encoding: 7bit X-Mailer: Servlet Mailer ?
При отправке письма при помощи JavaMail В начале письма всегда стоит: Mime-Version: 1.0 Content-Type: text/plain ...

Чем отличается Encoding.Unicode от Encoding.UTF16
я вот что то не пойму чем отличается Encoding.Unicode от Encoding.UTF16? и почему в браузерах используется UTF8 хотя там юникод вроде бы......

Почему реализация ГОСТ 89 работает с Encoding.UTF8 и не работает с Encoding.ASCII?
Класс GOSTCrypto //S-блок protected byte S_Block = { new byte {...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru