打印 unicode 字符

Printing unicode character

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。我期待 char

想通了:

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

₹ 这样的字符引用在没有结尾分号的情况下无法识别。此外,您可以简单地使用

echo "₹"

或者(如果您自始至终都正确使用 UTF-8,这是值得推荐的)简单地

echo "₹";

而且很多时候您不需要 echo,因为您可以简单地在 HTML.[=17= 中写入参考 ₹ 或字符 ]

浏览器是否呈现“₹”字符是另一回事;你通常应该做一些字体设置,可能使用可下载的字体,@font-face.

echo "₹";

只要您输出到 HTML 内容,字符引用就适用。不适合其他格式(例如注入 JavaScript)。

echo "₹";

只要您的源文件以 UTF-8 编码保存,就可以正常工作。

否则,字符U+20B9印度卢比符号的UTF-8字节编码为0xE2、0x82、0xB9。所以:

echo "\xE2\x82\xB9";

或者,使用函数从代码点数字创建 UTF-8 字符串:

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

echo unichr(0x20B9);