Реклама на сайте Advertise with us

Urlencode() с $_SERVER['REQUEST_URI'] и без

Расширенный поиск по форуму
 
Новая тема Новая тема   
Автор
Поиск в теме:



С нами с 15.06.10
Сообщения: 1719
Рейтинг: 51

Ссылка на сообщениеДобавлено: 21/02/13 в 18:39       Ответить с цитатойцитата 

$string1="по немецки";
Если кодирую переменную $string1 через urlencode выводит одно.
Если получаю $string1 через $_SERVER['REQUEST_URI']и кодирую тем же urlencode выходит другое
Почему так происходит ?
Как исправить положение ?

Последний раз редактировалось: cherchell2010 (21/02/13 в 22:24), всего редактировалось 2 раз(а)

-1
 
+ +
WP-Master

С нами с 17.01.13
Сообщения: 1922
Рейтинг: 1123


Передовик Master-X (16.02.2015) Передовик Master-X (01.03.2015)
Ссылка на сообщениеДобавлено: 21/02/13 в 18:48       Ответить с цитатойцитата 

cherchell2010: потому что в GET он уже закодирован, и ты повторно его кодируешь.

-1
 

programmer

С нами с 08.12.02
Сообщения: 7607
Рейтинг: 5752

Ссылка на сообщениеДобавлено: 21/02/13 в 19:01       Ответить с цитатойцитата 

Код:

urlencode(urldecode($any_string));

крипта на ByBit

0
 
+ +
WP-Master

С нами с 17.01.13
Сообщения: 1922
Рейтинг: 1123


Передовик Master-X (16.02.2015) Передовик Master-X (01.03.2015)
Ссылка на сообщениеДобавлено: 21/02/13 в 19:32       Ответить с цитатойцитата 

Sterx: trollface.png зачем?

-2
 

programmer

С нами с 08.12.02
Сообщения: 7607
Рейтинг: 5752

Ссылка на сообщениеДобавлено: 21/02/13 в 19:35       Ответить с цитатойцитата 

а непонятно? такие теории развел в теме про С, а тут непонятно

крипта на ByBit

-1
 
+ +
WP-Master

С нами с 17.01.13
Сообщения: 1922
Рейтинг: 1123


Передовик Master-X (16.02.2015) Передовик Master-X (01.03.2015)
Ссылка на сообщениеДобавлено: 21/02/13 в 19:36       Ответить с цитатойцитата 

Sterx: ты получишь тоже самое что и в гет, зачем делать лишние телодвижения?

-2
 

programmer

С нами с 08.12.02
Сообщения: 7607
Рейтинг: 5752

Ссылка на сообщениеДобавлено: 21/02/13 в 19:39       Ответить с цитатойцитата 

просто проигнорируй мессадж

крипта на ByBit

-1
 
+ +
WP-Master

С нами с 17.01.13
Сообщения: 1922
Рейтинг: 1123


Передовик Master-X (16.02.2015) Передовик Master-X (01.03.2015)
Ссылка на сообщениеДобавлено: 21/02/13 в 19:45       Ответить с цитатойцитата 

Sterx: trollface.png нет мне таки интересно, на хрена советовать человек решение его проблемы если то что он делает это лишние?

-3
 

programmer

С нами с 08.12.02
Сообщения: 7607
Рейтинг: 5752

Ссылка на сообщениеДобавлено: 21/02/13 в 19:49       Ответить с цитатойцитата 

Оффтопик:
отличие МХ от программерских форумов - здесь никто никого не учит как надо. дискуссия с тобой мне неинтересна, я ответил ТС

крипта на ByBit

-1
 
+ +
WP-Master

С нами с 17.01.13
Сообщения: 1922
Рейтинг: 1123


Передовик Master-X (16.02.2015) Передовик Master-X (01.03.2015)
Ссылка на сообщениеДобавлено: 21/02/13 в 19:53       Ответить с цитатойцитата 

Sterx: Оффтопик: то есть, тут могут посоветовать лишние тело движения для адлата?

-3
 



С нами с 15.06.10
Сообщения: 1719
Рейтинг: 51

Ссылка на сообщениеДобавлено: 21/02/13 в 22:23       Ответить с цитатойцитата 

Не верно написал , не GET Method
получаем данные из $_SERVER['REQUEST_URI']


Хотя с GET таже самая ситуация

Замеченная проблема возникает с символами не латинского алфавита.

-1
 



С нами с 18.10.02
Сообщения: 4165
Рейтинг: 3365

Ссылка на сообщениеДобавлено: 21/02/13 в 23:17       Ответить с цитатойцитата 

Тебе же написали.
Дартаньян писал:
cherchell2010: потому что в GET он уже закодирован, и ты повторно его кодируешь.

Не нужно кодировать то, что и так уже закодировано.

-1
 
+ +
WP-Master

С нами с 17.01.13
Сообщения: 1922
Рейтинг: 1123


Передовик Master-X (16.02.2015) Передовик Master-X (01.03.2015)
Ссылка на сообщениеДобавлено: 21/02/13 в 23:20       Ответить с цитатойцитата 

cherchell2010:
Если я правильно понял автора, то ему надо это.
Код: [развернуть]

-1
 



С нами с 15.06.10
Сообщения: 1719
Рейтинг: 51

Ссылка на сообщениеДобавлено: 21/02/13 в 23:30       Ответить с цитатойцитата 

похоже вы упорно не видите мою проблему.
$q=бла-бла-бла -посылаем через GEТ

<?
header("Content-Type: text/html; charset=utf-8");
extract($_REQUEST);
$q2="бла-бла-бла";

$i=urlencode($q);
$i2 =urlencode($q2);

echo $q;
echo "<br>";
echo $i;
echo "<br>";
echo $i2;

?>

Во всех трех случаях имеем разные значения одинаковой переменной
бла-бла-бла
%D0%B1%D0%BB%D0%B0-%D0%B1%D0%BB%D0%B0-%D0%B1%D0%BB%D0%B0
%E1%EB%E0-%E1%EB%E0-%E1%EB%E0


Все что мне надо, это получить %E1%EB%E0-%E1%EB%E0-%E1%EB%E0 из гет метода
А вышенаписаный код выдает %D0%B1%D0%BB%D0%B0-%D0%B1%D0%BB%D0%B0-%D0%B1%D0%BB%D0%B0

-1
 



С нами с 18.10.02
Сообщения: 4165
Рейтинг: 3365

Ссылка на сообщениеДобавлено: 21/02/13 в 23:42       Ответить с цитатойцитата 

cherchell2010 писал:
Во всех трех случаях имеем разные значения одинаковой переменной

Потому что файлы надо сохранять в соответствующей кодировке. Сохрани в utf-8, запусти и получишь, что $i равно $i2.

-1
 



С нами с 11.10.12
Сообщения: 428
Рейтинг: 1032


Передовик Master-X (16.11.2012)
Ссылка на сообщениеДобавлено: 21/02/13 в 23:42       Ответить с цитатойцитата 

Вот что твой код выдает у меня

Код:
бла-бла-бла
%D0%B1%D0%BB%D0%B0-%D0%B1%D0%BB%D0%B0-%D0%B1%D0%BB%D0%B0
%D0%B1%D0%BB%D0%B0-%D0%B1%D0%BB%D0%B0-%D0%B1%D0%BB%D0%B0


Результат предсказуем т.к. $q == 'бла-бла-бла' и следовательно $q и $q2 равны.

Другое дело, если твой файл, в котором написано $q2="бла-бла-бла"; имеет кодировку, отличную от utf-8.

Ты бы показал, что именно выдает тебе "Во всех трех случаях имеем разные значения".

upd

%E1%EB%E0-%E1%EB%E0-%E1%EB%E0 говорит о том, что твой файл в кодировке cp1251

upd2

если менять кодировку файла нельзя, бери iconv('utf-8','cp1251',$_GET['q']) вместо $_GET['q']

Последний раз редактировалось: johndoe2 (21/02/13 в 23:45), всего редактировалось 1 раз

apache, bash, css, elasticsearch, ffmpeg, html, js, mysql, mongo, nginx, php; *nix only

0
 



С нами с 15.06.10
Сообщения: 1719
Рейтинг: 51

Ссылка на сообщениеДобавлено: 21/02/13 в 23:44       Ответить с цитатойцитата 

вот же ж я писал
у меня выдает
бла-бла-бла
%D0%B1%D0%BB%D0%B0-%D0%B1%D0%BB%D0%B0-%D0%B1%D0%BB%D0%B0
%E1%EB%E0-%E1%EB%E0-%E1%EB%E0

Какие файлы, я вам привел простой пример с переменными.

Или под файлами подразумевается сам код php ?

Последний раз редактировалось: cherchell2010 (21/02/13 в 23:51), всего редактировалось 1 раз

0
 
+ +
WP-Master

С нами с 17.01.13
Сообщения: 1922
Рейтинг: 1123


Передовик Master-X (16.02.2015) Передовик Master-X (01.03.2015)
Ссылка на сообщениеДобавлено: 21/02/13 в 23:47       Ответить с цитатойцитата 

johndoe2: опередил гад.

-2
 



С нами с 15.06.10
Сообщения: 1719
Рейтинг: 51

Ссылка на сообщениеДобавлено: 21/02/13 в 23:54       Ответить с цитатойцитата 

сижу , думаю, как у исполняемого php файла может быть кодировка. Че то не пойму.

По поводу iconv , что делать если язык переменной заранее не известен ?

-2
 



С нами с 11.10.12
Сообщения: 428
Рейтинг: 1032


Передовик Master-X (16.11.2012)
Ссылка на сообщениеДобавлено: 21/02/13 в 23:56       Ответить с цитатойцитата 

cherchell2010 писал:
Какие файлы, я вам привел простой пример с переменными.

Или под файлами подразумевается сам код php ?


Тестовый код, который ты привёл, сохранён в файле, который ты же открываешь в своём же браузере. Именно этот файл у тебя же сохранён в кодировке cp1251, и поэтому строка $q2="бла-бла-бла"; тоже имеет эту кодировку же. А современные браузеры кириллицу, вписанную в адресную строку, передают в виде utf-8. Отсюда и разница: $q поступает в скрипт в кодировке utf-8, а $q2 в нём же - в cp1251. С какой радости не-ascii символам в этих строках быть одинаковыми?

apache, bash, css, elasticsearch, ffmpeg, html, js, mysql, mongo, nginx, php; *nix only

1
 



С нами с 15.06.10
Сообщения: 1719
Рейтинг: 51

Ссылка на сообщениеДобавлено: 22/02/13 в 00:05       Ответить с цитатойцитата 

Как быть в случае передачи переменной на японском, немецком, русском и простой латиницы ?

-2
 



С нами с 11.10.12
Сообщения: 428
Рейтинг: 1032


Передовик Master-X (16.11.2012)
Ссылка на сообщениеДобавлено: 22/02/13 в 00:09       Ответить с цитатойцитата 

cherchell2010 писал:
Как быть в случае передачи переменной на японском, немецком, русском и простой латиницы ?


Забудь об однобайтовых кодировках и распишись в получении месячного проездного в рай. Работай с utf-8 и всё тут

apache, bash, css, elasticsearch, ffmpeg, html, js, mysql, mongo, nginx, php; *nix only

2
 



С нами с 03.02.11
Сообщения: 842
Рейтинг: 301

Ссылка на сообщениеДобавлено: 22/02/13 в 10:51       Ответить с цитатойцитата 

еще кто-то не в utf-8? ну капец...
cherchell2010: та хоть китайцы с ихними 2к иероглифами - все поместяца в утф-8. два байта, понимаешь? 65к символов, а тыт тут про своих немцев... юзай гугл. ты первый, кого я послал на гугол, но уже накипело. мастер-х разработан для порнушников, а не для недопрограммистов, таких как ты и я...
еще насчет "как у исполняемого php файла может быть кодировка."
что есть исполняемый пхп файл? когда и кем он исполняется? давай так: исполняемый тхт файл - таких - пруд пруди. и исполняются похлеще пхп кода.
давайте не путать Божий Дар с яишницей. кодировка файла решает тоже, но не вздумай утф8 с заголовком писать, моск сломаешь об первые три байта файла...
уровень топикстартера-кодера мне ясен. и меня берет ужос, когда я понимаю, что есть кодеры, которые на меня глядят так-же... но у меня хватает признаться... понимэшь?
учись, студент smail54.gif
мир всем!

1
 



С нами с 21.08.12
Сообщения: 102
Рейтинг: 17

Ссылка на сообщениеДобавлено: 23/02/13 в 23:48       Ответить с цитатойцитата 

По теме: ТС - исполняемый файл пхп - это всего лишь текстовый файл, с расширением php, который интерпретируется в код.
Каждый текстовый файл имеет свою кодировку.
Чтобы не было проблем - юзай UTF-8 without BOM.
Как уже отмечалось выше, UTF-8 - 2 байта на символ, тобишь около 65к различных вариантов символа. Китайский язык с их иероглифами меркнет, по-сравнению с такой кодировкой.
Удачи в будущем кодинге)
З.Ы. За что минусуете-то?)

-1
 
Новая тема Новая тема   

Текстовая реклама в форме ответа
Заголовок и до четырех строчек текста
Длина текста до 350 символов
Купить рекламу в этом месте!


Перейти:  



Спонсор раздела Стань спонсором этого раздела!

Реклама на сайте Advertise with us

Опросы

Рецепт новогоднего блюда 2022



Обсудите на форуме обсудить (11)
все опросы »