Данные из массива $_GET — наполовину правильная кодировка

Статус
В этой теме нельзя размещать новые ответы.

Albert22

Старатель
Регистрация
30 Мар 2008
Сообщения
270
Реакции
11
Всем привет!
Извлекая $_GET['c'] получаю то, что изображено на вложении (print_r($_GET);).
Скрипт вызывается посредством mod_rewrite:
/city_Одесса —» /?c=Одесса
В httpd.conf 'e:
Код:
AddDefaultCharset utf-8
AddCharset utf-8 *
<IfModule mod_charset.c>
    CharsetSourceEnc utf-8
    CharsetDefault utf-8
</IfModule>
Причём проблемы возникают в Файрфоксе
Пробовал в Хроме — всё нормально
Подскажите, что с этим делать?
Может заголовок какой передать?
 

Вложения

  • Без-имени-1.png
    Без-имени-1.png
    651 байт · Просмотры: 0
по ссылке надо передавать в utf8 кодировке, а ты передаешь в cp1251
 
Либо UTF-8, либо %-кодирование (как в википедии).
Второй вариант лучше, потому что UTF-8 может работать не со всеми браузерами/веб-службами, а %-кодирование - это стандарт.
Для PHP смотрите функции urldecode / urlencode, rawurldecode / rawurlencode), для JS - encodeURIComponent / decodeURIComponent, encodeURI / decodeURI
 
Спасибо, но я пробовал уже.
PHP:
print '<a href="/city_'.urlencode($data['city']).'">'.$data['city'].'</a>';
Затем тестирую
PHP:
$var = urldecode($_GET['c']);
//$var = iconv('cp1251', 'utf-8', $var);
print_r($var);
Выводит то же самое.

Добавлено через 1 минуту
Скорее всего я делаю что-то неправильно.
Подскажите необходимые действия и их очерёдность.
 
1) а исходный код у вас в правильной кодировке?? $data['city']
2) если ничего не помогает то Для просмотра ссылки Войди или Зарегистрируйся
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху