Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
mad_alexx
Зарегистрирован: 14.01.2005 Сообщения: 154 Откуда: Иркутск
|
Добавлено: Вт Мар 14 2006 16:35 Заголовок сообщения: Ввод русских букв на wap-сайте |
|
|
Как обеспечить ввод русских букв в текстовое поле при работе на wap-сайте с мобильного телефона? Кодировка на сайте windows-1251. Русские буквы в телефоне отображаются нормально, но введённый русский текст преобразуется в нечто вроде "Р.Р.С.С.Р.РёС.Р. Р.РёР". |
|
Вернуться к началу |
|
![](templates/subSilver/images/spacer.gif) |
Neeoon
Зарегистрирован: 19.11.2004 Сообщения: 173 Откуда: Ukraine
|
Добавлено: Ср Мар 15 2006 23:41 Заголовок сообщения: |
|
|
Попробуй выставить не 1251, а утф-8 _________________ Всё, что ни делается, - всё к лучшему! |
|
Вернуться к началу |
|
![](templates/subSilver/images/spacer.gif) |
mad_alexx
Зарегистрирован: 14.01.2005 Сообщения: 154 Откуда: Иркутск
|
Добавлено: Чт Мар 16 2006 11:32 Заголовок сообщения: |
|
|
Neeoon писал(а): | Попробуй выставить не 1251, а утф-8 |
Уже думал об этом, но какой функцией преобразовать текст в формат UTF-8 и обратно? Пробовал utf8_encode/utf8_decode после преобразования в ISO-8859-5, но русские буквы тоже превращаются непонятно во что. И iconv на сервере провайдера не рабоает. |
|
Вернуться к началу |
|
![](templates/subSilver/images/spacer.gif) |
Axon
Зарегистрирован: 31.05.2006 Сообщения: 17 Откуда: Екатеринбург
|
Добавлено: Вт Июн 06 2006 08:55 Заголовок сообщения: |
|
|
utf8_encode/utf8_decode работают только с кодировкой ISO-8859-1. То есть с русскими буквами корректно не работают!
Если iconv на сервере провайдера не работает, то либо менять провайдера, либо писать собственную функцию преобразования из win-1251 в utf-8 (поскольку замечательная функция convert_cyr_string не поддерживает юникод). |
|
Вернуться к началу |
|
![](templates/subSilver/images/spacer.gif) |
mr.il
Зарегистрирован: 21.10.2005 Сообщения: 30
|
Добавлено: Чт Июн 08 2006 06:29 Заголовок сообщения: |
|
|
Функция не моя
Код: | function cp1251_utf8( $sInput ) {
$sOutput = "";
for ( $i = 0; $i < strlen( $sInput ); $i++ ) {
$iAscii = ord( $sInput[$i] );
if ( $iAscii >= 192 && $iAscii <= 255 )
$sOutput .= "&#".( 1040 + ( $iAscii - 192 ) ).";";
else if ( $iAscii == 168 )
$sOutput .= "&#".( 1025 ).";";
else if ( $iAscii == 184 )
$sOutput .= "&#".( 1105 ).";";
else
$sOutput .= $sInput[$i];
}
return $sOutput;
}
|
|
|
Вернуться к началу |
|
![](templates/subSilver/images/spacer.gif) |
|