POST Ajax и знак "плюс" (+) — как закодировать?

У меня есть та же проблема и найденное решение: необходимо установить Маас - включают в список & пакет tftpd-hpa.

sudo apt-get install maas-enlist tftpd-hpa

затем повторно выполняется sudo maas-import-isos -u

91
задан Web_Designer 27 January 2017 в 07:19
поделиться

3 ответа

Используйте encodeURIComponent () в JS, а в PHP вы должны получить правильные значения.

Примечание. Когда вы обращаетесь к $ _ GET , $ _ POST или $ _ REQUEST в PHP, вы получаете значения, которые уже были декодированы.

Пример:

В вашем JS:

// url encode your string
var string = encodeURIComponent('+'); // "%2B"
// send it to your server
window.location = 'http://example.com/?string='+string; // http://example.com/?string=%2B

На вашем сервере:

echo $_GET['string']; // "+"

Это только необработанный HTTP-запрос, содержащий данные в кодировке URL.

Для запроса GET вы можете получить его из URI . $ _SERVER ['REQUEST_URI'] или $ _ SERVER ['QUERY_STRING'] . Для POST-запроса с кодированием urlen-кодов file_get_contents ('php: // stdin')

NB:

decode () работает только для однобайтовых символов. Это не будет работать для всего диапазона UTF-8.

например:

text = "\u0100"; // Ā
// incorrect
escape(text); // %u0100 
// correct
encodeURIComponent(text); // "%C4%80"

Примечание: «% C4% 80» эквивалентно: escape ('\ xc4 \ x80')

Это последовательность байтов ( \ xc4 \ x80 ), которая представляет Ā в UTF -8. Поэтому, если вы используете encodeURIComponent () , ваша серверная сторона должна знать, что она получает UTF-8. В противном случае PHP будет искажать кодировку.

140
ответ дан 24 November 2019 в 06:47
поделиться

В JavaScript попробуйте:

encodeURIComponent() 

и в PHP:

urldecode($_POST['field']);
18
ответ дан 24 November 2019 в 06:47
поделиться

Шестнадцатеричное значение, которое вы ищете, - % 2B

Чтобы получить его автоматически в PHP, введите строку через urlencode ($ stringVal) . А затем запустите его rhough urldecode ($ stringVal) , чтобы вернуть его.

Если вы хотите, чтобы JavaScript обработал его, используйте escape (str)

Edit

After @ Комментарий bobince Я прочитал больше, и он прав. Используйте encodeURIComponent (str) и decodeURIComponent (str) . Escape не преобразует символы, а экранирует их только с помощью \

4
ответ дан 24 November 2019 в 06:47
поделиться
Другие вопросы по тегам:

Похожие вопросы: