2017-01-27 4 views
0

Ich muss decodierte Zeichenfolge, die Prozentzeichen zu U + hex hat, ersetzen.Konvertieren Prozentzeichen zu u + hex (javascript)

String:

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

Was ich brauche:

Änderung %F0%9F%98%8A-'U+1F60A' oder 1F60A (global), nach http://unicode.org/emoji/charts/full-emoji-list.html.

+0

Sie wollen ' "text = U + 1F60A & id = 60 & tags ="' als Gegenleistung? Oder einfach nur "" text = & id = 60 & tags = "'? – kennytm

+1

Warum möchten Sie das tun? 'decodeURIComponent' liefert Ihnen eine perfekt gute Unicode-Zeichenkette. Was hast du vor mit der Zeichenfolge mit 'U +' drin? –

Antwort

1

Für 1f60a:

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

Beachten Sie, dass \u1f60a nicht funktionieren in JS (obwohl es als HTML-Einheit wird), müssen Sie 2 Codepoints; c.charCodeAt(0).toString(16) & c.charCodeAt(1).toString(16)

+0

Können Sie Ihren zweiten Absatz näher erläutern? Wird 'charCodeAt (1)' nicht undefiniert zurückgegeben? –

+0

JS verwendet UTF16 und das Emoji ist in dem Bereich, in dem 2 Zeichen benötigt werden: '" .length == 2' –

+0

Konkret: '" "==" \ 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 Nachricht