Я не так хорошо знаком с Javascript и ищу функцию, которая возвращает значение UNICODE символа и, учитывая значение UNICODE, возвращает строковый эквивалент. Я уверен, что есть что-то простое, но я этого не вижу.
Пример:



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Посмотри на:
String.fromCharCode(64)
а также
String.charCodeAt(0)
Первый должен быть вызван в строке класс (буквально String.fromCharCode...) и вернет «@» (для 64). Второй должен запускаться в строке пример (например, "@@@".charCodeAt...) и возвращать код Unicode первого символа ('0' - это позиция в строке, вы можете получить коды для других символов в строке, изменив это на другой номер).
Фрагмент скрипта:
document.write("Unicode for character ਔ is: " + "ਔ".charCodeAt(0) + "<br />");
document.write("Character 2580 is " + String.fromCharCode(2580) + "<br />");
дает:
Unicode for character ਔ is: 2580 Character 2580 is ਔ
Спасибо, это именно та функция, которую я искал!
Поскольку JavaScript использует UCS-2 внутри, String.fromCharCode(codePoint) не будет работать с дополнительными символами Unicode. Например, если codePoint - это 119558 (0x1D306, для символа '?').
Если вы хотите создать строку на основе кодовой точки Unicode, отличной от BMP, вы можете использовать служебные функции Punycode.js для преобразования между строками UCS-2 и кодовыми точками UTF-16:
// `String.fromCharCode` replacement that doesn’t make you enter the surrogate halves separately
punycode.ucs2.encode([0x1d306]); // '?'
punycode.ucs2.encode([119558]); // '?'
punycode.ucs2.encode([97, 98, 99]); // 'abc'
если вы хотите получить кодовую точку Unicode для каждого символа в строке, вам необходимо преобразовать строку UCS-2 в массив кодовых точек UTF-16 (где каждая суррогатная пара образует одну кодовую точку). Для этого вы можете использовать служебные функции Punycode.js:
punycode.ucs2.decode('abc'); // [97, 98, 99]
punycode.ucs2.decode('?'); // [119558]
На самом деле Javascript использует кодировку UTF-16. Если вы поместите в него больше, чем BMP, и прочитаете его, вы получите то же самое, что и вставили. Хотя вы не будете писать в нем текстовый процессор.
Я прочитал вашу статью, и она зависит от браузера. Таким образом, если вы вставите кодировку UTF-16 в JavaScript v8 Chrome, вы получите именно тот код Unicode, который указывает. Рендеринг таких кодовых точек - это отдельная история.
@Chad Ничего из этого не зависит от браузера. Статья посвящена тому, как движки ECMAScript должны предоставлять «символы» в соответствии со спецификацией, и все движки, о которых я знаю, делают это правильно.
Пример создания алфавитного массива здесь:
const arr = [];
for(var i = 0; i< 20; i++) {
arr.push( String.fromCharCode('A'.charCodeAt(0) + i) )
}
Ну, это будет не asc (), а uni (). Ха-ха, сегодня утром я в хорошей форме :-).