Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Кодировка переменной $_SERVER['REQUEST_URI']

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
Serga
Отправлено: 26 Октября, 2008 - 08:54:26
Post Id


Новичок


Покинул форум
Сообщений всего: 9
Дата рег-ции: Авг. 2008  


Помог: 0 раз(а)




Как узнать кодировку переменной $_SERVER['REQUEST_URI'] ?
 
 Top
ALEN
Отправлено: 26 Октября, 2008 - 10:22:36
Post Id



Участник


Покинул форум
Сообщений всего: 1459
Дата рег-ции: Авг. 2008  
Откуда: Крым


Помог: 11 раз(а)




Serga На UTF заволялся массив:
CODE (text):
скопировать код в буфер обмена
  1.  
  2. array(
  3. "\xD0\xB0"=>"а", "\xD0\x90"=>"А",
  4. "\xD0\xB1"=>"б", "\xD0\x91"=>"Б",
  5. "\xD0\xB2"=>"в", "\xD0\x92"=>"В",
  6. "\xD0\xB3"=>"г", "\xD0\x93"=>"Г",
  7. "\xD0\xB4"=>"д", "\xD0\x94"=>"Д",
  8. "\xD0\xB5"=>"е", "\xD0\x95"=>"Е",
  9. "\xD1\x91"=>"ё", "\xD0\x81"=>"Ё",
  10. "\xD0\xB6"=>"ж", "\xD0\x96"=>"Ж",
  11. "\xD0\xB7"=>"з", "\xD0\x97"=>"З",
  12. "\xD0\xB8"=>"и", "\xD0\x98"=>"И",
  13. "\xD0\xB9"=>"й", "\xD0\x99"=>"Й",
  14. "\xD0\xBA"=>"к", "\xD0\x9A"=>"К",
  15. "\xD0\xBB"=>"л", "\xD0\x9B"=>"Л",
  16. "\xD0\xBC"=>"м", "\xD0\x9C"=>"М",
  17. "\xD0\xBD"=>"н", "\xD0\x9D"=>"Н",
  18. "\xD0\xBE"=>"о", "\xD0\x9E"=>"О",
  19. "\xD0\xBF"=>"п", "\xD0\x9F"=>"П",
  20. "\xD1\x80"=>"р", "\xD0\xA0"=>"Р",
  21. "\xD1\x81"=>"с", "\xD0\xA1"=>"С",
  22. "\xD1\x82"=>"т", "\xD0\xA2"=>"Т",
  23. "\xD1\x83"=>"у", "\xD0\xA3"=>"У",
  24. "\xD1\x84"=>"ф", "\xD0\xA4"=>"Ф",
  25. "\xD1\x85"=>"х", "\xD0\xA5"=>"Х",
  26. "\xD1\x86"=>"ц", "\xD0\xA6"=>"Ц",
  27. "\xD1\x87"=>"ч", "\xD0\xA7"=>"Ч",
  28. "\xD1\x88"=>"ш", "\xD0\xA8"=>"Ш",
  29. "\xD1\x89"=>"щ", "\xD0\xA9"=>"Щ",
  30. "\xD1\x8A"=>"ъ", "\xD0\xAA"=>"Ъ",
  31. "\xD1\x8B"=>"ы", "\xD0\xAB"=>"Ы",
  32. "\xD1\x8C"=>"ь", "\xD0\xAC"=>"Ь",
  33. "\xD1\x8D"=>"э", "\xD0\xAD"=>"Э",
  34. "\xD1\x8E"=>"ю", "\xD0\xAE"=>"Ю",
  35. "\xD1\x8F"=>"я", "\xD0\xAF"=>"Я",
  36.  
  37. )
  38.  

(Добавление)
<?function utf8_in_win($s)
{
$s=strtr($s,array(
"\xD0\xB0"=>"а", "\xD0\x90"=>"А",
"\xD0\xB1"=>"б", "\xD0\x91"=>"Б",
"\xD0\xB2"=>"в", "\xD0\x92"=>"В",
"\xD0\xB3"=>"г", "\xD0\x93"=>"Г",
"\xD0\xB4"=>"д", "\xD0\x94"=>"Д",
"\xD0\xB5"=>"е", "\xD0\x95"=>"Е",
"\xD1\x91"=>"ё", "\xD0\x81"=>"Ё",
"\xD0\xB6"=>"ж", "\xD0\x96"=>"Ж",
"\xD0\xB7"=>"з", "\xD0\x97"=>"З",
"\xD0\xB8"=>"и", "\xD0\x98"=>"И",
"\xD0\xB9"=>"й", "\xD0\x99"=>"Й",
"\xD0\xBA"=>"к", "\xD0\x9A"=>"К",
"\xD0\xBB"=>"л", "\xD0\x9B"=>"Л",
"\xD0\xBC"=>"м", "\xD0\x9C"=>"М",
"\xD0\xBD"=>"н", "\xD0\x9D"=>"Н",
"\xD0\xBE"=>"о", "\xD0\x9E"=>"О",
"\xD0\xBF"=>"п", "\xD0\x9F"=>"П",
"\xD1\x80"=>"р", "\xD0\xA0"=>"Р",
"\xD1\x81"=>"с", "\xD0\xA1"=>"С",
"\xD1\x82"=>"т", "\xD0\xA2"=>"Т",
"\xD1\x83"=>"у", "\xD0\xA3"=>"У",
"\xD1\x84"=>"ф", "\xD0\xA4"=>"Ф",
"\xD1\x85"=>"х", "\xD0\xA5"=>"Х",
"\xD1\x86"=>"ц", "\xD0\xA6"=>"Ц",
"\xD1\x87"=>"ч", "\xD0\xA7"=>"Ч",
"\xD1\x88"=>"ш", "\xD0\xA8"=>"Ш",
"\xD1\x89"=>"щ", "\xD0\xA9"=>"Щ",
"\xD1\x8A"=>"ъ", "\xD0\xAA"=>"Ъ",
"\xD1\x8B"=>"ы", "\xD0\xAB"=>"Ы",
"\xD1\x8C"=>"ь", "\xD0\xAC"=>"Ь",
"\xD1\x8D"=>"э", "\xD0\xAD"=>"Э",
"\xD1\x8E"=>"ю", "\xD0\xAE"=>"Ю",
"\xD1\x8F"=>"я", "\xD0\xAF"=>"Я",

));
return $s;
}?>
 
 Top
Serga
Отправлено: 26 Октября, 2008 - 16:28:04
Post Id


Новичок


Покинул форум
Сообщений всего: 9
Дата рег-ции: Авг. 2008  


Помог: 0 раз(а)




ALEN Вы неправильно понили вопрос, массив $SERVER не всегда в UTF-8 и мне нужно узнать в какокй кодировке переменная, а не переводить из UTF-8 в Win.

Зачем делать функцию function utf8_in_win, если есть urldecode и iconv.

(Отредактировано автором: 26 Октября, 2008 - 16:28:59)

 
 Top
valenok Модератор
Отправлено: 26 Октября, 2008 - 17:54:29
Post Id



Здесь могла бы быть ваша реклама


Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006  
Откуда: Israel


Помог: 3 раз(а)




В какой кодировке она может быть, если там всегда только цифры, английские буквы и спец символы если вы только что сами напомнили про urldecode?

У самой переменной кодировки нет. У ее содержимого текста - та что ей подсунет apache,
а именно установленная им кодировка по умолчанию.

Ещё есть функции библиотеки mb_
И расскажите пожалуйста зачем могло понадобится такое ухищрение ?


-----
Truly yours, Sasha.
 
My status
 Top
Serga
Отправлено: 26 Октября, 2008 - 18:10:07
Post Id


Новичок


Покинул форум
Сообщений всего: 9
Дата рег-ции: Авг. 2008  


Помог: 0 раз(а)




valenok Нужно для того, чтобы на сайте сделать URL'у типа site.ru/тест/
После обратки urldecode не всегда кодировка utf-8.
 
 Top
ALEN
Отправлено: 26 Октября, 2008 - 18:19:40
Post Id



Участник


Покинул форум
Сообщений всего: 1459
Дата рег-ции: Авг. 2008  
Откуда: Крым


Помог: 11 раз(а)




Serga
Я не о том, как переводить. Я просто логику показал, как можно реализовать перевод. Т.е. принцип - "\xD0\xB0"=>"а" - а перекодировка, когда известна кодировка начальная не составит труда. Т.е. мы, чтоб определить кодировку ищем совпадение. А точнее, что-то похожее на это "\xD0\xB0"
 
 Top
valenok Модератор
Отправлено: 26 Октября, 2008 - 18:57:07
Post Id



Здесь могла бы быть ваша реклама


Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006  
Откуда: Israel


Помог: 3 раз(а)




Serga через mod_rewrite все свои параметры вписывайте в качестве гет параметров,
тоесть a/b/user в a.php?b&u=user


-----
Truly yours, Sasha.
 
My status
 Top
Serga
Отправлено: 26 Октября, 2008 - 19:08:32
Post Id


Новичок


Покинул форум
Сообщений всего: 9
Дата рег-ции: Авг. 2008  


Помог: 0 раз(а)




ALENИнтересный вариант, только таблицы надо создавать для всех кодировок и проверять совпадения.
А возможен вариант, что код %D0%B0 = > "а" будет в нескольких таблицах?
Хорошо бы какой нибудь вариант по проще.
(Добавление)
valenokНе поможет. В апаче уже неизвестная кодировка.
 
 Top
ALEN
Отправлено: 26 Октября, 2008 - 19:27:17
Post Id



Участник


Покинул форум
Сообщений всего: 1459
Дата рег-ции: Авг. 2008  
Откуда: Крым


Помог: 11 раз(а)




Serga
valenok прав, все будет нормально, если конечно с головой подходить к вопросу. Все таким образом все создают. Единственное, если такая проблема при создании поиска на сайте и приходится создавать такую фишку, то мой тебе совет переводи запрос например через base64 и потом обратно. А если это алиасы страниц, то лучше переводи их перед созданием на полу-транслит.

Таким образом ты лишишся множества лишних проблем!
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB