Так что в настоящее время у меня есть строка в десятичном формате UTF-16, которую я конвертирую с помощью chr ().
По большей части работает нормально, но на смайликах не получается.
Я запустил пример в js, который отлично работает, вот этот пример
console.log(String.fromCharCode(84,104,105,115,32,105,115,32,97,32,116,101,115,116,32,119,105,116,104,32,97,110,32,101,109,111,106,105,32,55357,56834,32))
, который производит
This is a test with an emoji ?
Но когда я пытаюсь сделать это в PHP, это то, что я получаю
function fromCharCode() {
return array_reduce(func_get_args(),function($a,$b){$a.=chr($b);return $a;});
}
print(fromCharCode(84,104,105,115,32,105,115,32,97,32,116,101,115,116,32,119,105,116,104,32,97,110,32,101,109,111,106,105,32,55357,56834,32));
Результат:
This is a test with an emoji =
Теперь я обнаружил, что js позволяет мне принимать String.fromCharCode(55357,56834)
, который производит ?
но PHP chr()
позволяет принимать только по одному за раз, что означает, что я не могу создавать эмодзи.
Кто-нибудь знает способ сделать это, исправляя текущий код или используя другую функцию?
Редактировать: Таким образом, вы получите еще немного фона, строка, с которой я должен начать, это HEX UTF-16
005400680069007300200069007300200061002000740065007300740020007700690074006800200061006E00200065006D006F006A00690020D83DDE020020