2017-09-03 22 views

回答

1

PHP在這部分是不可知論的。它只能理解二進制。唯一負責正確顯示錶情符號的是網頁本身。

更準確地說,PHP將字符串存儲爲一系列字節。表情符號大小可達4(甚至超過4)個字節。如果您只是看到錯誤編碼的二進制數據,那麼這個工件就會出現。相反,請確保您的網頁有一個適當的Unicode編碼,像

<head> 
    <meta charset="UTF-8"> 
</head> 

而且還對PHP端:

header('Content-type: text/plain; charset=utf-8'); 
+0

但是,我怎樣才能顯示'ðŸ~'作爲emoji到我的瀏覽器? –

+0

我有一個像這樣的元標記,但它仍然顯示爲像PussycatðŸ'...ðŸ'...ðŸ'...不是一個表情符號 –

0

一些可能出現的問題,

1:如果您在使用MySQL和utf8字符集,你會得到這些類型的結果,因爲MySQL默認不處理這個結果,而且MySQL的UTF8不是UTF8,它是真正的4字節utf8的3字節子集,它不涵蓋emojis,而MySQL則稱之爲真實utf8爲utf8mb4,此外,默認情況下,MySQL會將無效4字節字符截斷爲一些隨機垃圾(但通過打開STRICT_TRANS_TABLESTRADITIONAL SQL_MODE可以避免這種瘋狂行爲) - 但是,從utf8追溯更改爲utf8mb4不會修復您現有的損壞數據:(

2:您沒有在響應頭中指定字符集,或者更糟糕的是,您指定了錯誤的字符集。不幸的是,如果你對字符集沒有特別的瞭解,瀏覽器會假設你使用的是ISO-8859-1字符集..確保你給頁眉Content-Type: text/html; charset=utf-8,明確地向瀏覽器指定你的html是utf-8編碼的,並且應該如此呈現。