我有一個數據庫,它存儲了帶有Unicode字符的視頻遊戲名稱,但我無法弄清楚在將它們打印到HTML響應時如何正確地轉義這些Unicode字符。打印Unicode字符PHP
舉例來說,當我打印與像祕境名稱的所有比賽,我得到這個:
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具有內置的escape和unescape功能。
但我不知道任何具有類似功能的PHP函數。我已閱讀ord函數,但它僅返回給定字符的ASCII字符代碼,因此不正確地顯示™
或™
。我希望這個函數能夠適用於任何包含有效Unicode字符的字符串。