@ Ответ Сильвио верен только для кодовых точек до 0xFFFF (что в итоге является максимумом, который может вывести String.fromCharCode). Вы не можете всегда предполагать, что длина символа равна единице:
'?'.length
-> 2
Вот что работает:
var utf16ToDig = function(s) {
var length = s.length;
var index = -1;
var result = "";
var hex;
while (++index < length) {
hex = s.charCodeAt(index).toString(16).toUpperCase();
result += ('0000' + hex).slice(-4);
}
return parseInt(result, 16);
}
Используя его:
utf16ToDig('?').toString(16)
-> "d800df30"
(Вдохновение от https://mothereff.in/utf-8)