Unicode符号出错了

时间:2010-06-09 13:09:38

标签: php html unicode entity

显然,我一定有些蠢事。下标和上标的unicode图表说#00B2是上标2,但我得到了加扰输出。 0078是x,但是我得到N,而0120是x。我读错了手册吗?


修改

$x = 'N';

print html_entity_decode($x, ENT_NOQUOTES, 'UTF-8') . "\n";

1 个答案:

答案 0 :(得分:3)

我认为你可能会混淆十进制和十六进制值。例如,十六进制0x78是小写的x,但十进制78(十六进制0x4e)是大写的N.

在HTML中,您可以将Unicode实体指定为使用&#n;的十进制或带有&#xn;的十六进制(其中n将替换为十进制或十六进制字符代码)。对于上标2,您可以使用²²

在您的示例代码中,您正在解码实体N。这是一个十进制实体,因此您可以获得预期结果(大写N)。您链接的Unicode表使用十六进制。要获得小写的x,您必须使用x作为输入。