Кодировка с WAP

Cruiser

Новичок
Кодировка с WAP

Вторые сутки сижу парюсь не могу распознать в какой кодировке с мобильника приходит переменная на апач!!!!!!
convert_cyr_string() не помогла во всех вариантах
utf8_decoding() не помогла
Перепробовал кучу пользовательских функций не помогли.

В лучшем случае телефон отображает ?????? или CP|+PPC
В худшем пишет не поддерживаемые данные.
В эмуляторах работает (вроде)
 

SiMM

Новичок
1. Чем смотрел?
2.
PHP:
function hex_dump($str){
  return substr(preg_replace('#.#se','sprintf(".%02X",ord("$0"))',$str),1);
}
echo hex_dump($_GET['your_var']);
И вывод сюда.
PS: а вообще должно быть UTF-8. Если контент выдавался в UTF-8
 
У меня лично вот так все работает (и на мобильнике в эмуляторах.. )
PHP:
<?xml version="1.0" encoding="windows-1251"?>    
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.3//EN" "http://www.wapforum.org/DTD/wml13.dtd">

<wml>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1251"/>
</head>

Здесь пишем все в обычной кодировке windows-1251

</wml>
 

chisto_tolyan

Враг народа
эт еще смотря какой мобилник...семены, например почти все UTF-8 принмают, а windows-1251 нехотять...
 

Cruiser

Новичок
Хорошо, как можно конверить utf-8 в cp1251 а лучше сразу в koi8-r?
iconv() на хостинге нету.

-~{}~ 01.10.05 20:02:

hex_dump выдает DF.C5.CF.CC.DE.DA
я весь текст функцией win2utf-8() преобразую и потом вывожу, поэтому с отображением готового текста проблем нет.
Проблемы с получением из <input> кириллицы, что с мобилы (Siemens s45) что с WinWap
 

SiMM

Новичок
Cruiser, ну наверно можно было догадаться сообщить, что вы при этом вводили ;) Вводили "серная"?
Это не UTF-8.
PHP:
echo convert_cyr_string(pack('H*','DFC5CFCCDEDA'),'w','k');
Разбирайтесь со своими формами - судя по всему, контент вы выдаёте далеко не в UTF-8, да и в хидерах у вас - невесть что.

> я весь текст функцией win2utf-8()
Такой функции в PHP нет.
 

Cruiser

Новичок
Разбирайтесь со своими формами - судя по всему, контент вы выдаёте далеко не в UTF-8, да и в хидерах у вас - невесть что.
Формы то на мобильнике, как я с ним могу разобраться?
WinWap такие хидеры:
HTTP/1.1 200 OK
Date: Sat, 01 Oct 2005 16:03:34 GMT
Server: Apache/1.3.27 (Unix)
X-Powered-By: PHP/4.2.3
Connection: close
Content-Type: text/vnd.wap.wml; charset=koi8-r
Expires: Thu, 01 Jan 1970 00:00:01 GMT
Last-Modified: Sat, 01 Oct 2005 16:03:34 GMT
--[ HEADER END ]------
Я не могу понять откуда там koi8-r, может в этом все дело?
charset по видимому сервером добавляется, и даже если я ввожу ручками все равно как то подменяется
 

SiMM

Новичок
> Формы то на мобильнике, как я с ним могу разобраться?
1. Формы формируете ВЫ.
2. Существуют эмуляторы.
3. Да хотя бы телнетом страничку запросить, если до CURL'а не сообразили.

> даже если я ввожу ручками все равно как то подменяется
Вот и разбирайтесь. Либо с апачем, либо с тем, как вы подменяете.
 

Cruiser

Новичок
Кто нить поможет конкретными примерами а не намеками?
Конкретный вопрос.
Каким это образом апач может подменять руками установленный чарсет в хидерах? Где такая настройка у него?
Т.е я посылаю хидер Content-Type: text/vnd.wap.wml; charset=utf-8
а приходит koi8-r

-~{}~ 02.10.05 22:45:

Вот, я догадался отправить переменную методом GET и посмотрел урл в адресе на мобильнике:
%d0%bc%d0%b0%d0%bc%d0%bo - слово мама
Это что за кодировка?
Хотя WinWap посылает в нормальном формате %EC%E0%EC%E0

-~{}~ 02.10.05 23:18:

Вообще неординарная ситуация творится на вап ресурсах именно с формами.
Например известный ресурс wap.yell.ru
Пробовал в WinWap, M3Gate, в эмуляторе через веб сайт,- ни в одном из них при запросах из форм на кириллице ничего не находит, а при запросе с мобильника все работает.
M3Gate вообще пишет неправильный данные.
 

SiMM

Новичок
> %d0%bc%d0%b0%d0%bc%d0%bo - слово мама
> Это что за кодировка?
UTF-8
PHP:
<?=iconv('UTF-8','CP1251',urldecode('%d0%bc%d0%b0%d0%bc%d0%b0'))?>
> Хотя WinWap посылает в нормальном формате %EC%E0%EC%E0
Вот это как раз таки и ненормальный формат. Если контент у тебя в UTF-8, а не в CP1251

> Пробовал в WinWap, M3Gate, в эмуляторе через веб сайт,- ни в одном из них при запросах из форм на кириллице ничего не находит, а при запросе с мобильника все работает.
Либо эмуляторы кривы, либо постарался WAP-гейт.
 

Cruiser

Новичок
хм, глянул в эмуляторе emulator.tagtag.com в нем такого вида урл
&#65533;FFD43C&#65533;FFD430&#65533;FFD43C&#65533;FFD430

-~{}~ 03.10.05 16:11:

Кодировку в хидерах исправил, теперь там utf-8
Выявилось вот что: Опера методом GET посылает в UTF-8 (в точности как и мобильник), и в опере echo $var выводится, а на мобильнике ничего не выводится.
Где опять рыть?

Вывожу так: echo iconv('UTF-8','CP1251',urldecode('$var'));
 

wellrun

Новичок
Попробуй отключить в htaccess кодировку по умолчанию

-~{}~ 03.10.05 18:35:

Автор оригинала: Cruiser
Мне M3Gate посоветовали как самый правильный
Вообще лучше на реальном устройстве проверять.
 

SiMM

Новичок
> а opera уже не в моде?
А она годиться лишь для просмотра. А не отправки форм. Хотя не знаю, может в новой версии глюки с отрезанием байта от мультибайтовых символов исправлены.
 

Cruiser

Новичок
Опера 8.02 нормально формы отправляет.

Короче, у меня на сименсе все работает, в опере тоже
А вот, по моей просьбе, человек протестил на Nokia 6610i и формы не отправляются, т.е. страница перегружается и опять на ней же остается.
 

voodoo

Новичок
у Нокии, по моему опыту, очень сильно все кэшируется (форма, как я понимаю, данные отправляет на ту же страницу где она сама?)
я бы советовал для проверки:
1. открыть форму
2. через меню почистить кэш
3. отправить данные.

ну и если в этом проблема - добавлять в таргет в форме случайное число

-~{}~ 04.10.05 15:55:

кстати, про новую оперу, в 8.5, кажется, знатный глюк добавили -- она по "картам" внутри одного документа не ходит, т.е. типа index.wml#page2 Надо ctrl-r жать чтобы показало.

У кого-нть повторяется такое?
 

Cruiser

Новичок
Случайное число это типа такого - index.php?num=1 ?
Опера 8.02 по картам нормально ходит, во всяком случае по моему сайту.
 
Сверху