Проблема с кодировкой на мобильном

AntiBuger

Новичок
Привет всем коллеги. Делаю мобильную версию сайта, кодировка всех страниц в utf-8, всё четко работает, но при отправке данных с формы в обработчик, данные от туда возвращаются в неверной кодировке и некорректно отображаются. Сразу скажу, файл обработчик имеет тоже кодировку utf-8. И самое интересное, всё работает нормально на компьютере, а на телефоне не работает (телефон не древний Галакси С2). Кто может встречал такую проблему?
 

aspire

Новичок
Вот эта строка указывает в какой кодировке браузер должен отдавать данные из формы.
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
Если она стоит так больше нечего не остается как проверять пришедшую кодировку, а потом менять ее.
mb_convert_encoding($str, "utf-8", "auto")
насколько качественно работает функция не скажу, всегда знаю в какой кодировку приходит текст(остальные просто отбрасываю).
 

С.

Продвинутый новичок
Итак метод тыка не помог. Теперь попробуем по-нормальному. Для начала попробуем себе ответить на довольно неожиданный и парадоксальный вопрос: "А в какой кодирове приходит текст с телефона?".
 

AntiBuger

Новичок
C2%8B%C390%C2%B5 и т.п. Это я вижу из спроки браузера
А на странице выводится текст в хрен знает каком виде ероглифы, дроби и т.п.
 

AntiBuger

Новичок
На странице выводится сообщение которое на русском и переданно из файла обработчика методом GET
 

AntiBuger

Новичок
На Лебедеве говорится что кодировка моего текста ISO-8859-1, но программа не может распознать полностью корректно мой текст (есть косяки). Так вопро, как мне теперь перевести в нужную, я уже что только не пробовал, iconv и т.д.
 

С.

Продвинутый новичок
%C390 по любому не может быть ISO-8859-1. Это символ 쎐
 

aspire

Новичок
не факт что именно ISO-8859-1, потомушто даже если посмотреть по wiki то только ISO-8859-5 работает с кирилецей. А если учесть что в этой кодировке нет тире и кавычек там всяких, то у вас вполне могут оставаться не распознаваемые символы. И соответственно распознать корректно это невозможно. Разве составить собственную таблицу для перекодирования
 

AntiBuger

Новичок
Главный прикол что работает на компьютере а на телефоне не работает. Кто нибудь для мобильных устройств делал сайты?
 

С.

Продвинутый новичок
То есть тебе таки не интересно какая кодировка, а интересно делал ли кто сайты для мобильных? А какая разница, клиент мобильный или нет (по крайне мере в части обработки поступающих данных)?
 

aspire

Новичок
То есть тебе таки не интересно какая кодировка, а интересно делал ли кто сайты для мобильных? А какая разница, клиент мобильный или нет (по крайне мере в части обработки поступающих данных)?
Полностью с тобой согласен, хотел задать те же вопросы.
 

Вурдалак

Продвинутый новичок
Покажи что выводит
PHP:
var_dump(headers_list(), bin2hex($_POST['s']));
в обработчике. Вместо $_POST['s'] подставь ту переменную, в которой содержится отправленный клиентом текст.

И сравни с тем, что выводится в обработчике с мобильного браузера. Если различаются, то скорее всего проблема ещё на странице с формой.
 

AntiBuger

Новичок
Нет, просто если не делал ты сайты для мобильного то не поймешь прикол, потому что в мобильных сайтах много своих подвожных камней. А за кодировку я говорю потому что, на мобильном она глючит а тот же сайт только на ПК нормально всё.
 

AntiBuger

Новичок
Покажи что выводит
PHP:
var_dump(headers_list(), bin2hex($_POST['s']));
в обработчике. Вместо $_POST['s'] подставь ту переменную, в которой содержится отправленный клиентом текст.

И сравни с тем, что выводится в обработчике с мобильного браузера. Если различаются, то скорее всего проблема ещё на странице с формой.

array(2) { [0]=> string(24) "X-Powered-By: PHP/5.2.17" [1]=> string(23) "Content-type: text/html" } string(102) "d09dd0b5d0bad0bed180d180d0b5d0bad182d0bdd0be20d0b2d0b2d0b5d0b4d0b5d0bdd18b20d0b4d0b0d0bdd0bdd18bd0b521"
 

Вурдалак

Продвинутый новичок
AntiBuger, ну вот, а почему просто text/html? Ты должен был явно в обработчике (да и вообще на всех страницах) прописать
PHP:
header('Content-type: text/html; charset=utf-8');
А вот как раз прописывание кодировки в meta лично я считаю неправославным, хотя, конечно, можно списать на то, что кому-то надо сохранить HTML-страницу как файл и браузер прописать кодировку самостоятельно не сможет.
 

С.

Продвинутый новичок
meta нормально распознается андроидным браузером. ...Если она там стоит конечно.
 

AntiBuger

Новичок
Там система элементарная, форма посылает данные в обработчик, а обработчик в случае удачи возращает сообщение www.site.ru/?msg=операция выполнена
Вот это сообщение и не распознается, оно ероглифами на самой странице выглядет, а в строке браузера оно отображается C2%8B%C390%C2% и т.п.
Вот и странно, в строке браузера одно а на форме другое
 

AmdY

Пью пиво
Команда форума
С.
мета практически везде имеет меньший приоритет нежели заголовок от сервера, а вот раз из пыха заголовка нужного не последовало, то его будет использоваться тот, который по дефолту на сервере.
а в строке браузера оно отображается C2%8B%C390%C2% и т.п.
(facepalm.jpg)
 
Сверху