Думаю, мне здесь не хватает чего-то очевидного, но это сводит меня с ума, и я не могу этого понять. Я разрабатываю плагин WordPress, и его часть должна взять заголовок сообщения WordPress и отправить его в веб-службу RESTful, чтобы сделать что-то еще. Конечно, я хочу использовать rawurlencode () для заголовка сообщения, потому что кто знает, какой текст там может быть. Однако по какой-то причине в выводе, который я получаю, есть лишние escape-символы, и я понятия не имею, откуда они берутся (и это, очевидно, вызывает проблемы с веб-службой, которую я вызываю).
Мой код довольно прост:
$topic = get_the_title($post_id);
$curl_post_fields = 'name=' . rawurlencode( $topic );
Тем не менее, когда я распечатываю вывод этих двух строк, я получаю:
topic=a & b
name=a%20%26%23038%3B%20b
В то время как я ожидал, что строка в кодировке URL будет
name=a%20%26%20b
Я понятия не имею, откуда мог взяться этот дополнительный% 23038% 3B. Если я правильно читаю кодировку, она переводится как # 038; но я до сих пор не знаю, откуда это.