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

Как избавиться от ошибки Uncaught URIError: URI malformed?

Цель - отправить на сервер emoji символы.
Отправляются все символы, кроме символов гороскопа.
Сам символ - 0x2648, суррогатная пара которого - ["d7c9", "de48"]
При попытке отправки полученного символа с помощью функции String.fromCharCode получаю ошибку:
Uncaught URIError: URI malformed
Каким образом можно решить эту проблему? Гугление не принесло итогов.

Код отправки примерно такой:
emoji = '2648';
emoji_symbol = findSurrogatePair('0x'+emoji);
emoji_symbol = String.fromCharCode(parseInt(emoji_symbol[0],16), parseInt(emoji_symbol[1],16));
$.post('/send', {message: emoji_symbol}, function(data) {
   console.log(data);
});

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)];
}
  • Вопрос задан
  • 4752 просмотра
Подписаться 1 Оценить 1 комментарий
Пригласить эксперта
Ваш ответ на вопрос

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

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