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
Форумы портала PHP.SU :: Версия для печати :: Кодировка переменной $_SERVER['REQUEST_URI']
Форумы портала PHP.SU » PHP » Программирование на PHP » Кодировка переменной $_SERVER['REQUEST_URI']

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

1. Serga - 26 Октября, 2008 - 08:54:26 - перейти к сообщению
Как узнать кодировку переменной $_SERVER['REQUEST_URI'] ?
2. ALEN - 26 Октября, 2008 - 10:22:36 - перейти к сообщению
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;
}?>
3. Serga - 26 Октября, 2008 - 16:28:04 - перейти к сообщению
ALEN Вы неправильно понили вопрос, массив $SERVER не всегда в UTF-8 и мне нужно узнать в какокй кодировке переменная, а не переводить из UTF-8 в Win.

Зачем делать функцию function utf8_in_win, если есть urldecode и iconv.
4. valenok - 26 Октября, 2008 - 17:54:29 - перейти к сообщению
В какой кодировке она может быть, если там всегда только цифры, английские буквы и спец символы если вы только что сами напомнили про urldecode?

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

Ещё есть функции библиотеки mb_
И расскажите пожалуйста зачем могло понадобится такое ухищрение ?
5. Serga - 26 Октября, 2008 - 18:10:07 - перейти к сообщению
valenok Нужно для того, чтобы на сайте сделать URL'у типа site.ru/тест/
После обратки urldecode не всегда кодировка utf-8.
6. ALEN - 26 Октября, 2008 - 18:19:40 - перейти к сообщению
Serga
Я не о том, как переводить. Я просто логику показал, как можно реализовать перевод. Т.е. принцип - "\xD0\xB0"=>"а" - а перекодировка, когда известна кодировка начальная не составит труда. Т.е. мы, чтоб определить кодировку ищем совпадение. А точнее, что-то похожее на это "\xD0\xB0"
7. valenok - 26 Октября, 2008 - 18:57:07 - перейти к сообщению
Serga через mod_rewrite все свои параметры вписывайте в качестве гет параметров,
тоесть a/b/user в a.php?b&u=user
8. Serga - 26 Октября, 2008 - 19:08:32 - перейти к сообщению
ALENИнтересный вариант, только таблицы надо создавать для всех кодировок и проверять совпадения.
А возможен вариант, что код %D0%B0 = > "а" будет в нескольких таблицах?
Хорошо бы какой нибудь вариант по проще.
(Добавление)
valenokНе поможет. В апаче уже неизвестная кодировка.
9. ALEN - 26 Октября, 2008 - 19:27:17 - перейти к сообщению
Serga
valenok прав, все будет нормально, если конечно с головой подходить к вопросу. Все таким образом все создают. Единственное, если такая проблема при создании поиска на сайте и приходится создавать такую фишку, то мой тебе совет переводи запрос например через base64 и потом обратно. А если это алиасы страниц, то лучше переводи их перед созданием на полу-транслит.

Таким образом ты лишишся множества лишних проблем!

 

Powered by ExBB FM 1.0 RC1