Подтвердить что ты не робот

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

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

Пример:

  • ASC ( "A" ) = 65
  • CHR (65) = "A"
  • ASC ( "ਔ" ) = 2580
  • CHR (2580) = "ਔ"
4b9b3361

Ответ 1

Посмотрите:

String.fromCharCode(64)

и

String.charCodeAt(0)

Первый должен быть вызван в String class (буквально String.fromCharCode...) и вернет "@" (для 64). Второй должен быть запущен на String экземпляре (например, "@@@".charCodeAt...) и возвращает код Юникода первого символа ( "0" - это позиция внутри строки, вы можете получить коды для другие символы в строке, изменив это на другое число).

Фрагмент script:

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 ਔ

Ответ 2

Потому что JavaScript использует UCS-2 внутренне, String.fromCharCode(codePoint) не работает для дополнительных символов Unicode. Если codePoint - 119558 (0x1D306, для символа '𝌆'), например.

Если вы хотите создать строку на основе кодовой точки без BMP Unicode, вы можете использовать функции 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]

Ответ 3

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

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