代码之家  ›  专栏  ›  技术社区  ›  robert

Unicode符号出错

  •  1
  • robert  · 技术社区  · 14 年前

    很明显,我一定在做什么蠢事。下标和上标的unicode图表显示#00B2是上标2,但我得到了加扰输出。0078是x,但我得到N,0120是x。我读错手册了吗?


    $x = 'N';
    
    print html_entity_decode($x, ENT_NOQUOTES, 'UTF-8') . "\n";
    
    1 回复  |  直到 14 年前
        1
  •  3
  •   Phil Ross Matt Johnson-Pint    14 年前

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

    在HTML中,可以使用 &#n; &#xn; n 替换为十进制或十六进制字符代码)。对于上标2,您可以使用 ² ² .

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