我有一个数据库,其中存储了带有Unicode字符的视频游戏名称,但是当我将它们打印到HTML响应时,我无法正确转义这些Unicode字符。例如,当我打印所有名称类似于“Uncharted”的游戏时,我会得到以下结果:
但它应该显示这个:
我运行了一个快速的JavaScript转义函数来查看
如果我可以正确显示
请指导我如何最好地对字符串进行Unicode转义,以便使其适用于HTML。我之前做过类似于JavaScript的操作,但是JavaScript有一个内置的转义和反转义函数。
然而,我不知道任何PHP具有类似功能的函数。我已经阅读了关于ord函数的内容,但它只返回给定字符的ASCII字符代码,因此无法正确显示
Uncharted: Drake's Fortuneâ„¢
Uncharted 2: Among Thievesâ„¢
Uncharted 3: Drake's Deceptionâ„¢
但它应该显示这个:
Uncharted: Drake's Fortune™
Uncharted 2: Among Thieves™
Uncharted 3: Drake's Deception™
我运行了一个快速的JavaScript转义函数来查看
™
是哪个Unicode字符,并发现它是\u2122
。如果我可以正确显示
™
字符,那么我不会对字符串中的每个字符进行完全转义。我的猜测是以某种方式找到字符串中每个字符的十六进制表示,并让PHP呈现Unicode字符,如下所示:print "™";
请指导我如何最好地对字符串进行Unicode转义,以便使其适用于HTML。我之前做过类似于JavaScript的操作,但是JavaScript有一个内置的转义和反转义函数。
然而,我不知道任何PHP具有类似功能的函数。我已经阅读了关于ord函数的内容,但它只返回给定字符的ASCII字符代码,因此无法正确显示
™
或™
。我希望这个函数足够通用,可以应用于包含有效Unicode字符的任何字符串。