打印 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.我期待炭

如果没有尾随分号,则无法识别像 ₹ 这样的字符引用。此外,您可以简单地使用

echo "₹"

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

echo "₹";

而且很多时候你不需要echo,因为你可以简单地用HTML编写引用₹或字符

浏览器是否呈现"₹"字符是一个不同的问题;您通常应该进行一些字体设置,可能使用可下载的字体,@font-face

想了想:

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

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);