2017-01-27 60 views
0

我需要將具有百分比符號的已解碼字符串替換爲U +十六進制。將百分比符號轉換爲u +十六進制(javascript)

字符串:

"text=%F0%9F%98%8A&id=60&tags="; 

我需要什麼:

根據http://unicode.org/emoji/charts/full-emoji-list.html變化%F0%9F%98%8A'U+1F60A'1F60A(全球)。

+0

你想' 「文本= U + 1F60A&ID = 60&標籤=」'作爲回報?或者只是'「text =&id = 60&tags =」'? – kennytm

+1

你爲什麼想這樣做? 'decodeURIComponent'會給你一個完美的Unicode字符串。你打算如何處理帶有U +的字符串? –

回答

1

對於1f60a

var c = decodeURIComponent("%F0%9F%98%8A").codePointAt(0).toString(16); 

注意,在JS \u1f60a不會工作(儘管它會作爲一個HTML實體),則需要2個編碼點; c.charCodeAt(0).toString(16) & c.charCodeAt(1).toString(16)

+0

你能否詳細說明你的第二段? 'charCodeAt(1)'不會返回undefined? –

+0

JS使用UTF16,表情符號在需要表示2個字符的範圍內:'「」.length == 2' –

+0

具體來說:'「」==「\ ud83d \ ude0a」== true' –

0

var message = "This is my message %F0%9F%98%8A and I love emojis!"; 
 
$("p").text(decodeURI(message));
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<p></p>

VAR消息

相關問題