utf8, WAP, проблемы кодировки

ahramg

Guest
utf8, WAP, проблемы кодировки

Проблема.
На странице текстовое поле, которое выводится на следующей странице.

По специфики WAP все поле заполняется в UTF8.
Вторая страница получает данные и отображает.

Получается следующее:
- вводим "один";
- в URL попадает "%3E%34%38%3D";
- следующая страница выводит вместо русского "один" - ">48=".

iconv не работает после размещения в соответствующих директориях. по форуму ходил, искал похожие проблемы - не получается найти решения.

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

Leek

Новичок
Что значит, iconv не работает? Что-нибудь говорит?
 

ahramg

Guest
Говорит
Fatal error: Call to undefined function: iconv()

У меня стоит W2k3
 

master_x

Pitavale XXI wieku
так тебе надо проверить стоит ли у тебя вообще iconv, судя по ошибке- нет. Проверь в phpinfo() расширения.
 

ahramg

Guest
Хорошо, постараюсь более внимательно посмотреть, как сделать iconv работоспособным.

А в принципе, чем он мне может помочь ?
В процессе перехода от страницы к странице данные вне зависимости от меня успевают конвертнутся во что-то отличное от UTF8 ? Тогда во что?
Таким образом достаточно из этого "что-то" конвертнуть обратно в UTF8 ?

Просто пока искал в форуме, нашел ряд функций конвертации 1251 в UTF8 и обратно. Ни то, ни другое не помогло.
 

SiMM

Новичок
Нефиг оперой тестить. iconv тут не у дел. Ваще. Опера косячит то, что должно передаваться на сервер.
 

DiTHER

bang bang
PHP:
	$mnemorus = array(  array('А','A'),
						array('Б','Б'),
						array('В','B'),
						array('Г','Г'),
						array('Д','Д'),
						array('Е','E'),
						array('Ё','Ё'),
						array('Ж','Ж'),
						array('З','3'),
						array('И','И'),
						array('Й','Й'),
						array('К','K'),
						array('Л','Л'),
						array('М','M'),
						array('Н','H'),
						array('О','O'),
						array('П','П'),
						array('Р','P'),
						array('С','C'),
						array('Т','T'),
						array('У','У'),
						array('Ф','Ф'),
						array('Х','X'),
						array('Ц','Ц'),
						array('Ч','Ч'),
						array('Ш','Ш'),
						array('Щ','Щ'),
						array('Ъ','Ъ'),
						array('Ы','Ы'),
						array('Ь','Ь'),
						array('Э','Э'),
						array('Ю','Ю'),
						array('Я','Я'),
						array('а','a'),
						array('б','б'),
						array('в','в'),
						array('г','г'),
						array('д','д'),
						array('е','e'),
						array('ё','ё'),
						array('ж','ж'),
						array('з','з'),
						array('и','и'),
						array('й','й'),
						array('к','к'),
						array('л','л'),
						array('м','м'),
						array('н','н'),
						array('о','o'),
						array('п','п'),
						array('р','p'),
						array('с','c'),
						array('т','т'),
						array('у','y'),
						array('ф','ф'),
						array('х','x'),
						array('ц','ц'),
						array('ч','ч'),
						array('ш','ш'),
						array('щ','щ'),
						array('ъ','ъ'),
						array('ы','ы'),
						array('ь','ь'),
						array('э','э'),
						array('ю','ю'),
						array('я','я'));
для вапа только так лучше всего, ибо шлюзы некоторые в России не пропускают utf-8 как таковой. Следовательно юзеры других регионов могут не попасть.
 

SiMM

Новичок
DiTHER, вы вопрос бы прочли. Кроме того приведённый вами кусок кода не имеет никакого смысла
 

ahramg

Guest
Проблема решилась.
По своей не разумности использовал набор тегов
<input/>
<a href>
а потом брал значение переменной способом _HTTP_GET_..
получалось, то, что описано выше.

Теперь использую
<anchor>
<input/>
<go href="">
<postfield ..>

на второй странице получаю значения либо _GET либо _POST.
С кодировками никаких проблем, как заполнили в форме, так и выводится.

Спасибо.
 

DiTHER

bang bang
Автор оригинала: SiMM
DiTHER, вы вопрос бы прочли. Кроме того приведённый вами кусок кода не имеет никакого смысла
SiMM,
Вопрос прочитали, а кусок кода не имеет смысла, ибо это массив. Но лишь до тех пор пока его не использовать по назначению. Такая перекодировка решает ВСЕ проблемы, и используется, например i-free (от них и узнал). Не на одни грабли они уже наступали, а у вас проверить работоспособность на большом количестве телефонов не получится ни при каком желании. Не по стандарту - да. Но в россии другого выхода пока нет.

<do кстати тоже на многих телефонах ломается.
 

SiMM

Новичок
> Не по стандарту - да.
С чего вы это взяли?
И вообще вся эта груда неудобна к применению (я бы ещё понял, если бы массив был в виде, удобном для применения
PHP:
array('А' =>'A','Б'=>'&#x0411;'...)
всё бы решалось одним [m]strtr[/m]ом) и может быть заменена на один регулярничек, если забыть о попытке экономить траффик.
 

nikit87

Новичок
DiTHER
я бы с массивами не парился а сделал бы что-нибудь типа такого
PHP:
function kir2utf ( $string ) { if ( (ord($string)>=192) & (ord($string)<=255) ) $hex=dechex(ord($string)+848); if ($s=="Ё") $hex="401"; if ($string=="ё") $hex="451"; return("&#x0".$hex.";"); }

	function modif($s) {return(preg_replace("/[А-яЁё]/e","kir2utf('\\0')",$s));}
Вроде проще и на большее кол-во символов
 

DiTHER

bang bang
Автор оригинала: SiMM
> Не по стандарту - да.
С чего вы это взяли?
И вообще вся эта груда неудобна к применению (я бы ещё понял, если бы массив был в виде, удобном для применения
PHP:
array('А' =>'A','Б'=>'&#x0411;'...)
всё бы решалось одним [m]strtr[/m]ом) и может быть заменена на один регулярничек, если забыть о попытке экономить траффик.
ну если считать utf как стандарт wap'а. :) С остальным согласен.

kvn,
при чём тут utf?

nikit87,
логика железная. Молодца.
 
Сверху