Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.10.2009, 14:13   #1
ADSoft
Старожил
 
Регистрация: 25.02.2007
Сообщений: 4,160
По умолчанию Передача кириллицы через GET

Собственно столкнулся с такой задачей:
Есть каталог товаров (их много).... Цель - организовать своеобразный фильтр по первой букве товара... то есть имеем список всех первых букв товаров, а-ля: 0 1 2 A B C D ...А Б ... Ю Я
каждая из которых является ссылкой типа index.php?letter="буква"
кроме того, все это хозяйство работает через мод реврайт.... то есть ссылки имеют вид index.php?letter="буква" == catalog-letter-буква.html
... пока были цифры и латинские символы - вроде все норм...
а вот с русскими - засада, причем я так думаю именно в мод реврайте....
потому как не нзаю какую маску составить чтобы кирилицу воспринимал... текущая
PHP код:
RewriteRule ^catalog-letter-([a-z,0-9\%]+)\.html$ /index.php?module=catalog 
возможно дело совсем в другом.... у кого какие предложения будут?
ADSoft вне форума Ответить с цитированием
Старый 25.10.2009, 14:40   #2
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 15,551
По умолчанию

Русские буквы в адресной строке будут иметь вид, что-то типа такого: %XX.
В итоге адреса будут не красивыми.
Я бы лучше для русских букв использовал вместо index.php?letter="буква" такое: index.php?letter=ru_"буква"
Где "буква" - уже не русская, а латинская в транслитерации. Скрипт будет из транслитерной буквы однозначно получать русскую букву.
Arigato вне форума Ответить с цитированием
Старый 25.10.2009, 15:34   #3
Metandrostenalon
Форумчанин
 
Регистрация: 03.04.2009
Сообщений: 108
По умолчанию

а это выражение с учетом регистра? %E0%E1%E2 такому выражению уже не подойдет
php,javascript
Metandrostenalon вне форума Ответить с цитированием
Старый 25.10.2009, 15:50   #4
wall66
Участник клуба
 
Аватар для wall66
 
Регистрация: 04.10.2008
Сообщений: 1,485
По умолчанию

Код:
RewriteRule ^catalog-letter-(.*).html$ /index.php?module=catalog&letter=$1
$_GET['letter'] будет в кодировке UTF-8, неограниченной длины строки (можете использовать $_GET['letter']=substr($_GET['letter'],0,1);)
свободен...
wall66 вне форума Ответить с цитированием
Старый 25.10.2009, 18:14   #5
ADSoft
Старожил
 
Регистрация: 25.02.2007
Сообщений: 4,160
По умолчанию

огромное спасиба... все способы интересны...
пытаюсь использовать последнее изменение в .httacces -
передаю "Я" получаю - "РЇ" ... преобразовывая utf8_decode - получаю "?"
вот как бы теперь вернуть родную "Я"
ADSoft вне форума Ответить с цитированием
Старый 25.10.2009, 18:39   #6
wall66
Участник клуба
 
Аватар для wall66
 
Регистрация: 04.10.2008
Сообщений: 1,485
По умолчанию

Цитата:
Сообщение от ADSoft Посмотреть сообщение
utf8_decode
я бы посоветовал использовать
PHP код:
$_GET['letter']=mb_convert_encoding($_GET['letter'],"Windows-1251","UTF-8"); 
ибо есть возможность четко указать из чего и во что перекодировать
свободен...
wall66 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Передача файлов через интернет RIO Работа с сетью в Delphi 7 14.01.2010 13:05
Проблема с передачей кириллицы через буфер обмена Windows Vodnik Win Api 2 12.07.2009 19:12
Передача файлов через интернтет RIO Работа с сетью в Delphi 2 14.06.2009 17:44
передача данных через idtcpclient BioS Работа с сетью в Delphi 0 20.02.2007 11:04