Что такое простой способ вызова Asc() и Chr() в JavaScript для значений Unicode?
Я не знаком с Javascript и ищу функцию, возвращающую значение UNICODE символа, и учитывая значение UNICODE, возвращает эквивалент строки. Я уверен, что есть что-то простое, но я этого не вижу.
Пример:
- ASC ( "A" ) = 65
- CHR (65) = "A"
- ASC ( "ਔ" ) = 2580
- CHR (2580) = "ਔ"
Ответы
Ответ 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) )
}