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

  • Автор темы Автор темы ahramg
  • Дата начала Дата начала

ahramg

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

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

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

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

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

Таким образом какая конвертация и каким способом необходима, чтобы на второй странице отобразить русскими символами информацию ??
 
Говорит
Fatal error: Call to undefined function: iconv()

У меня стоит W2k3
 
так тебе надо проверить стоит ли у тебя вообще iconv, судя по ошибке- нет. Проверь в phpinfo() расширения.
 
Хорошо, постараюсь более внимательно посмотреть, как сделать iconv работоспособным.

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

Просто пока искал в форуме, нашел ряд функций конвертации 1251 в UTF8 и обратно. Ни то, ни другое не помогло.
 
Нефиг оперой тестить. iconv тут не у дел. Ваще. Опера косячит то, что должно передаваться на сервер.
 
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 как таковой. Следовательно юзеры других регионов могут не попасть.
 
DiTHER, вы вопрос бы прочли. Кроме того приведённый вами кусок кода не имеет никакого смысла
 
Проблема решилась.
По своей не разумности использовал набор тегов
<input/>
<a href>
а потом брал значение переменной способом _HTTP_GET_..
получалось, то, что описано выше.

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

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

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

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

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

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