PHP Странный символ перед знаком £?
-
20-09-2019 - |
Вопрос
По какой-то причине я получаю Â
£76756687 странный символ, когда я печатаю £ в текстовом поле формы?
Решение
Как вы подозреваете, это проблема с кодировкой символов - настроена ли страница на использование кодировки UTF-8?(На самом деле вы не ошибетесь с этой кодировкой.) Кроме того, вы, вероятно, захотите, чтобы сущность закодировала символ фунта на выходе (£
)
В качестве примера набора символов (как для страницы формы, так и для электронной почты HTML) вы можете использовать:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
Тем не менее, есть ли у пользователя веская причина вводить символ валюты?Было бы лучше иметь его в виде статического текстового элемента или раскрывающегося списка слева от текстового поля?(Не стесняйтесь игнорировать, если я говорю задницу, а вы используете текстовую область произвольной формы или сумму.)
Другие советы
Вероятно, вы используете UTF-8 в качестве кодировки символов, но неправильно объявляете вывод.Поскольку £
символ (U+00A3) кодируется в UTF-8 с помощью 0xC2A3.И эта последовательность байтов представляет два символа Â
и £
при интерпретации согласно ISO 8859-1.
Поэтому вам просто нужно правильно указать кодировку символов.В PHP вы можете использовать header
функция чтобы установить правильное значение для Тип содержимого поле заголовка нравиться:
header('Content-Type: text/html;charset=utf-8');
Но убедитесь, что вы вызываете эту функцию перед любым выводом.В противном случае заголовок HTTP уже отправлен, и вы не сможете его изменить.