Печать символа Юникод

HTML Entity (decimal)   ₹
HTML Entity (hex)   ₹
How to type in Microsoft Windows    Alt +20B9
UTF-8 (hex) 0xE2 0x82 0xB9 (e282b9)
UTF-8 (binary)  11100010:10000010:10111001
UTF-16 (hex)    0x20B9 (20b9)
UTF-16 (decimal)    8,377
UTF-32 (hex)    0x000020B9 (20b9)
UTF-32 (decimal)    8,377

Мне нужно напечатать этот символ, я делаю это:

$str = htmlentities('&#8377');
echo html_entity_decode($str);

но это просто выводит &#8377, Я ожидаю полукокса

1

Решение

Ссылка на символ как ₹ не распознается без завершающей точки с запятой. Кроме того, вы можете просто использовать

echo "₹"

или (если вы правильно используете UTF-8, что рекомендуется) просто

echo "₹";

И довольно часто вам не нужно echo, как вы можете просто написать ссылку ₹ или персонаж в HTML.

Отрисовывает ли браузер символ «₹» — это другая проблема; Вы должны обычно сделать некоторые настройки шрифта, возможно, с загружаемым шрифтом, @font-face,

2

Другие решения

Понял это:

echo html_entity_decode('₹', ENT_NOQUOTES, 'UTF-8');

1

echo "₹";

Работает до тех пор, пока вы выводите на контент HTML, где применяются ссылки на символы. Не подходит для других форматов (например, внедрение в JavaScript).

echo "₹";

Будет работать нормально, если ваш исходный файл сохранен в кодировке UTF-8.

В противном случае UTF-8-байтовая кодировка символа U + 20B9 Знак Индийской рупии равна 0xE2, 0x82, 0xB9. Так:

echo "\xE2\x82\xB9";

Или, используя функцию для создания строк UTF-8 из чисел кодовой точки:

function unichr($i) {
return iconv('UCS-4LE', 'UTF-8', pack('V', $i));
}

echo unichr(0x20B9);
1