簡體   English   中英

如何在Node和瀏覽器js中正確使用Unicode和UTF-8特殊字符?

[英]How to correctly use Unicode and UTF-8 special characters in Node and browser js?

所以我有這個角色:

🀀

MAHJONG TILE EAST WIND其具有Unicode的點U+1F000 (U+D83C U+DC00)和UTF-8編碼F0 9F 80 80

我的問題是如何在javascript中轉義?

我一直看到\＀ ,但是對於ASCII因為8字節最多只能帶您到255。只需將\ἀ0' (不正確) 'ἀ0'然后嘗試用0 s填充多余的字節就可以了\F000' 如何轉義較高的值(例如我的上述角色?)。

以及如何不僅逃脫Unicode點而且逃脫UTF-8編碼?

繼續進行此操作,我注意到節點REPL能夠顯示許多Unicode值,但是即使我的終端窗口(mac)正常也不能顯示某些Unicode值(例如Emoji)。 這有什么押韻或原因嗎

您可以使用\\ uXXXX x2(用於32位值)格式對char進行轉義。

要使用UTF-8字符串,請查看類型化的數組TextEncoder / TextDecoder 它們是相當新的,因此您可能需要在某些瀏覽器中使用polyfill。

 document.write('<h1>\?\?</h1>'); 

JavaScript不支持UTF-8字符串。 所有JavaScript字符串均為UCS-2(但支持UTF-16樣式的代理對)。 您可以使用兩個16位字符對星體平面字符進行轉義: "\?\?"

"🀀".charCodeAt(0).toString(16)
// => "d83c"
"🀀".charCodeAt(1).toString(16)
// => "dc00"
console.log("\ud83c\udc00")
// => 🀀

這也意味着JavaScript不知道如何正確獲得包含星體的字符串的長度,並且任何索引或子字符串都有可能出錯:

"🀀".length
// => 2

暫無
暫無

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

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