2014-02-15 49 views
1

我試圖做一些字符串方法,其中有一些文字內嵌了表情符號。Javascript +表情符號的奇怪

然而,這是我看到一個很奇怪的事情:

"".length == 2 

我只是想知道它是如何定爲1個字符是什麼,在我看來,其實2.

+1

不幸的是,由於歷史原因,JavaScript並不完全支持Unicode(不管信不信)。這裏有一篇很好的文章:[JavaScript和Unicode](http://blog.jochentopf.com/2011-03-17-javascript-and-unicode.html)。 –

+0

謝謝。該文章已經澄清了一點,我正在通過確保我計算字符的長度來解決這個問題 –

回答

0

是在Javascript,一個字符串是一個16位代碼點序列。由於表情符號>在BMP上方編碼,這意味着它們由一對代碼點(也稱爲代理對)表示。

「\ uD83D \ uDE00」

如果你願意走得更遠這一點,你可以閱讀這篇文章: 因此,舉例來說,0x1F600,這是由代表:Emojis in Javascript - Parsing emoji in Javascript is… not easy.