[英]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.