Цель - отправить на сервер 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)];
}