2013-02-28 8 views
5

Gibt es irgendeine Form, um eine Zeichenkette in Java Escape zu Index Unicode in PHP zu konvertieren?Konvertieren von "Java Escape" zu Index in PHP

Ich habe diese Saite:

$ str = "\ud83d\ude0e"; 

Und ich brauche den Anteil erhalten nach U +:

U+1F60E 

Oder der Python-Code:

u'\U0001f60e' 

Die Korrespondenz Codes: http://www.charbase.com/1f60e-unicode-smiling-face-with-sunglasses

Danke.

==== EDIT 03.09 ====

Sorry für meine Verspätung und vielen Dank für Ihre Antwort, aber sie bin nicht in der Lage zu tun, was ich brauche.

Ich brauche das caracter mit einem Bild zu ersetzen, so dass ich tun:

$src = "Hello "."\ud83d\ude0e"; 

$replaced = preg_replace("/\\\\u([0-9A-F]{1,8})/i", "&#x$1;", $src); 

$replaced = str_replace('&#x1f60e', '<img src="data/emoji_new/1F60E.png">', $replaced); 

$result = mb_convert_encoding($replaced, "UTF-8", "HTML-ENTITIES"); 

Aber nicht funktioniert .. Das Ergebnis ist:

"Hello ��" 

Jede weitere Idee ??

Nochmals vielen Dank!

Antwort

2

Sehr ähnlich PHP: Convert unicode codepoint to UTF-8

Geradeaus aus den 4-Byte-Zeichen, wenn Sie können.

$src = "Hello \u0001f60e"; 

$replaced = preg_replace("/\\\\u([0-9A-F]{1,8})/i", "&#x$1;", $src); 

$result = mb_convert_encoding($replaced, "UTF-8", "HTML-ENTITIES"); 

echo "Result is [$result] and string length is ".mb_strlen($result); 

Gibt etwas aus, das mit Sicherheit in den meisten Browsern nicht korrekt angezeigt wird.

Result is [Hello ] and string length is 10 

Oder von den beiden UTF-16-Codes:

$src = "Hello "."\ud83d\ude0e"; 

$replaced = preg_replace("/\\\\u([0-9A-F]{1,4})/i", "&#x$1;", $src); 

$result = mb_convert_encoding($replaced, "UTF-16", "HTML-ENTITIES"); 

$result = mb_convert_encoding($result, 'utf-8', 'utf-16'); 

echo "Result is [$result] and string length is ".mb_strlen($result)."\n"; 

$resultInHex = unpack('H*', $result); 

$resultInHex = $resultInHex[1]; 

$resultSeparated = implode(', ', str_split($resultInHex, 2)); 

echo "in hex: ".$resultSeparated; 

Ausgänge:

Result is [Hello ] and string length is 10 
in hex: 48, 65, 6c, 6c, 6f, 20, f0, 9f, 98, 8e 

Für alle, die sich fragen, 'Was Escape Java ist', kodiert Java alle Zeichen als UTF-16 intern.