Каков простой способ вызвать Asc () и Chr () в JavaScript для значений Unicode?

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

Пример:

  • ASC ("A") = 65
  • CHR (65) = "А"
  • ASC ("ਔ") = 2580
  • CHR (2580) = "ਔ"

Ну, это будет не asc (), а uni (). Ха-ха, сегодня утром я в хорошей форме :-).

paxdiablo 21.01.2009 04:23
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
47
1
70 773
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Ответ принят как подходящий

Посмотри на:

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 ਔ

Спасибо, это именно та функция, которую я искал!

Noah 21.01.2009 04:42

Поскольку 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, и прочитаете его, вы получите то же самое, что и вставили. Хотя вы не будете писать в нем текстовый процессор.

Chad 05.04.2013 11:49

Я прочитал вашу статью, и она зависит от браузера. Таким образом, если вы вставите кодировку UTF-16 в JavaScript v8 Chrome, вы получите именно тот код Unicode, который указывает. Рендеринг таких кодовых точек - это отдельная история.

Chad 08.04.2013 07:49

@Chad Ничего из этого не зависит от браузера. Статья посвящена тому, как движки ECMAScript должны предоставлять «символы» в соответствии со спецификацией, и все движки, о которых я знаю, делают это правильно.

Mathias Bynens 08.04.2013 13:23

Пример создания алфавитного массива здесь:

const arr = [];
for(var i = 0; i< 20; i++) {
    arr.push( String.fromCharCode('A'.charCodeAt(0) + i) )
}

Другие вопросы по теме