Задать вопрос
wielski
@wielski
✔ Совет: Вам помогли? Отметьте ответы решением.

Как перевести Unified строку в символ юникода (emoji)?

Есть строка вида
emoji = '1f606';
Что в юникод формате (U+1F606) является смеющимся смайликом emoji.

Какой функцией можно перевести эту строку в обычный юникод символ, для передачи серверу?
Нужно, чтобы из переменной emoji получилось pastebin.com/CpqQKNFY

Заранее благодарен за вашу огромнейшую помощь :)
  • Вопрос задан
  • 3282 просмотра
Подписаться 1 Оценить Комментировать
Решения вопроса 1
standy
@standy
1. Вы можете использовать этот символ как есть: "" (с дефолтным шрифтом символ не видно, но он есть)

2. В строках javascript можно использовать юникод символы в виде "\u25B2", где после \u идет ровно 4 символа. Так как символ юникода "1f606" находится в расширенной области, и кодируется так называемой суррогатной парой.
Вот из этой статьи (Parsing emoji Unicode in JavaScript) я нашел такой метод, для поиска суррогатных пар:
function findSurrogatePair(point) {
  // assumes point > 0xffff
  var offset = point - 0x10000,
      lead = 0xd800 + (offset >> 10),
      trail = 0xdc00 + (offset & 0x3ff);
  return [lead.toString(16), trail.toString(16)];
}

// find pair for U+1F600
findSurrogatePair(0x1f600); // ["d83d", "de00"]

// ваш символ:
findSurrogatePair(0x1f606); // ["d83d", "de06"]

Так что ваш символ можно записать как "\ud83d\ude06"

Далее требуется заменить последовательность "1f606" на наш символ, это легко делается командой
string.replace(/1f606/g, "\ud83d\ude06");
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы