Кодовая точка возвращается с приложением, CLI возвращает символ - PullRequest
0 голосов
/ 30 октября 2019

Когда я пытаюсь преобразовать   обратно в пробел, у меня меняется поведение. Из CLI я получаю ожидаемое отображение пробела, однако дамп var говорит, что пробел состоит из двух символов:

php -r "var_dump(html_entity_decode(' '));"

string (2) ""

Когда я запускаю код из своего скрипта, который обрабатывается с помощью Apache, я получаю кодовую точку Unicode

error_log(html_entity_decode(' '));

\ xc2 \ xa0

Как получитьсимвол пробела?

Например, для моего реального использования:

$fname = 'John Smith';
get_headers('https://example.com/' . urlencode(html_entity_decode($fname))).jpg

это делает запрос к:

https://example.com/John%25C2%25A0Smith.jpg

мой запрос должен быть

https://example.com/John Smith.jpg
https://example.com/John+Smith.jpg
https://example.com/John%20Smith.jpg

Я использую сущности для своих имен, поэтому я должен декодировать символы UTF8, чтобы получить их реальный символ.

...