Кодировка $ как ASCII - PullRequest
       6

Кодировка $ как ASCII

0 голосов
/ 27 января 2012

В моем HTML-файле я передаю значение через GET php. Значение следующее: 'var1$var2'.

В моем URL показано следующее:

/phpmethod.php?q=var1%24var2

Я посмотрел $ в таблице ASCII и обнаружил, что она имеет номер 24.

Я тоже попробовал с добавлением

<meta http-equiv="content-type" content="text/html; charset=utf-8" />

к html, но это тот же результат.

Как я могу решить это?

Ответы [ 3 ]

2 голосов
/ 27 января 2012

Используйте urldecode для преобразования значения обратно в опубликованное значение.

Обычно они вам не нужны - ваши $_GET и $_POST уже будут декодированы и будут содержатьvar1$var2 точно так же, как пользователь ввел их.

1 голос
/ 27 января 2012

Это нормально - так и должно быть. $ - это специальный символ, который может иметь особое значение, если включен в URL. Поэтому всякий раз, когда вы отправляете значение, содержащее $, этот символ будет экранирован ( urlencoded ) в его шестнадцатеричное значение, поэтому var1$var2 будет var1%24var2.

Когда на целевой странице (phpmethod.php) вы пишете GET['q'], $ символ автоматически urldecoded , и вы получите исходное значение var1$var2, поэтому вам не нужно беспокоиться о чем-либо.

Другие экранированные символы также включают пробел (%20), /, :, &, ? и т. Д. Также будут экранированы и все символы Unicode выше 0x7F.

Вы должны использовать функцию urldecode только в том случае, если вы явно использовали urlencode в своих данных; поэтому никогда не кодируйте значения $_POST и $_GET; они уже декодированы, и вы можете испортить ваши данные, сделав это снова.

0 голосов
/ 27 января 2012

Вы пытались просто передать var1 $ var2 и экранировать значение при его получении?

Я не php-кодер, поэтому я не стал бы сейчас, если это работает, но я думаю, что это должно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...