3 回答

TA貢獻(xiàn)1869條經(jīng)驗(yàn) 獲得超4個(gè)贊
根據(jù)官方 Unicode 數(shù)據(jù)文件:emoji-test.txt,? <U+2639> 是一個(gè)“不合格”(或“非完全合格”)表情符號(hào)序列,可能顯示為文本或表情符號(hào),具體取決于環(huán)境(操作系統(tǒng)、可用字體等)為了安全起見,請(qǐng)始終使用“完全合格”的表情符號(hào)序列;在這里,那就是:?? <U+2639, U+FE0F>

TA貢獻(xiàn)1155條經(jīng)驗(yàn) 獲得超0個(gè)贊
也許嘗試使用 javascript codePointAt() 進(jìn)行轉(zhuǎn)換并使用 javascript fromCodePoint() 在客戶端顯示它。

TA貢獻(xiàn)1840條經(jīng)驗(yàn) 獲得超5個(gè)贊
正如之前的貢獻(xiàn)者所指出的,您可能有一個(gè)不合格(即不完整)的表情符號(hào)。Unicode 標(biāo)準(zhǔn)為我們所知道的幾乎每個(gè)字符定義了數(shù)字(也稱為“代碼點(diǎn)”),包括表情符號(hào)。字體的工作是顯示與每個(gè)代碼點(diǎn)對(duì)應(yīng)的小圖像(因此您將字符轉(zhuǎn)換為圖像的想法基本上是在重新發(fā)明輪子)。
但是,某些表情符號(hào)由多個(gè)代碼點(diǎn)表示。例如,顯示的單個(gè)字符????是一個(gè)字素,由兩個(gè)碼位組成:U+1F1FA 和 U+1F1F8。為了讓事情變得更加混亂,一些表情符號(hào)有時(shí)表示為單個(gè)代碼點(diǎn),而有時(shí)它們由字素的組合表示(我認(rèn)為“家庭”的表情符號(hào)屬于這一類)。在任何情況下,如果您正在處理表情符號(hào)序列不完整的場(chǎng)景,那么不同的字體或操作系統(tǒng)或?yàn)g覽器或應(yīng)用程序 (???) 的行為可能會(huì)有所不同,并且有些可能會(huì)比其他的更優(yōu)雅地失敗。
檢查給定字符是否為有效代碼點(diǎn)可能對(duì)您有所幫助。PHP 可以使用多字節(jié)字符串?dāng)U展進(jìn)行編譯——它提供了一些可能對(duì)此有所幫助的函數(shù),例如mb_check_encoding和mb_ord(mb_ord
不幸的是沒有記錄(?。。。┑鼤?huì)給你第一個(gè)字符的代碼點(diǎn)給定的字符串)。PHP 可能沒有最好的字符串支持,但它應(yīng)該能夠滿足您的需求。
希望這可以幫助!
- 3 回答
- 0 關(guān)注
- 140 瀏覽
添加回答
舉報(bào)