簡體   English   中英

Unicode字符顯示不正確

[英]unicode character are not displayed correctly

目前,我將以下unicode字符串存儲在數據庫中。

\\ u4ece \\ u4e0b \\ u5468 \\ u4e00 \\ u8d77 \\ uff0c \\ u5947 \\ u5f02

如果我通過php將其發送到Apple APNS服務器,它將在iPhone上正確顯示。 但是,如果我要在網站上顯示這些字符(中文字符),則不會以中文顯示它們,而只是將其顯示為\\ u4ece \\ u4e0b \\ u5468 \\ u4e00 \\ u8d77 \\ uff0c \\ u5947 \\ u5f02

任何人都可以幫助我正確顯示它們嗎?

那不是“ Unicode”,那是Unicode轉義序列。 這:“下”是Unicode字符。 這:“ \\ u4e0b”是字符串“反斜杠您四個ee零蜜蜂” 1如果您將轉義序列與JSON完全一樣,則在解碼JSON時它會解析為正確的字符。 這是因為該轉義序列恰好在JSON中使用。 但是,這暗示了另一個問題,那就是您正在像這樣手動創建JSON:

$apns = "{\"message\":\"$unicodeEscape\"}";

不要那樣做 用您選擇的編程語言制作一個本機數組,然后對其進行JSON編碼:

$apns = json_encode(array('message' => '從下周一起,奇異'));

如果您當前正在執行此操作,則該字符串在iPhone上也將顯示為“ \\ u4ece ...”,因為該字符串內容可以正確地轉義JSON以保留其原始內容。

對於HTML來說,這些轉義序列首先並不意味着什么特別的東西,它們當然並不代表漢字。

實際的漢字存儲在數據庫中,例如以UTF-8編碼,而不是僅在某些情況下有意義的轉義序列。

我建議您閱讀http://kunststube.net上的大多數文章,以獲取更多詳細信息。


由於它們顯然是JSON轉義,因此將它們從當前使用的格式轉換回的最簡單方法應該是將它們解析為JSON:

$string = json_decode("\"$string\"");

只有在字符串中不包含使JSON語法當然無效的任何內容(例如"該方法才有效


1 (該字符串也由“ Unicode字符”組成,因為每個字符都可以用Unicode表示。)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM