2016-04-01 5 views
1

Я имею this характер Unicode, что я хочу, чтобы отобразить с помощью новой Unicode точки Escapes (IEE, где кто-то использует '\u{Code Point Here}'Как использовать escape-последовательности ECMAScript 6 Unicode?

Однако, я должен делать что-то неправильно, потому что делает

console.log('\u{134069}');

возвращается:

Uncaught SyntaxError: Undefined Unicode code-point

Но использование

console.log('\ud842\udfb5')

возвращает (правильный)

Как я могу использовать точку побега код?

ответ

2

Unicode escape-последовательности в Javascript используют шестнадцатеричные цифры для представления кодовых точек (что имеет смысл, поскольку они очень типично представлены таким образом). Вы пытались использовать 134069, который на основе суррогатной пары, которую вы поставили, на самом деле является десятичным представлением кодового пункта, который вы хотите распечатать. Вместо этого вам понадобится использовать шестнадцатеричный эквивалент, например. \u{20BB5} в ES6.

3

Вы можете использовать только номера HEX в последовательности юникода, как вы уже видели. Однако нет необходимости использовать символьные экраны, просто напишите или скопируйте/вставьте символы в строку, сохраните ее как utf-8, и вы идете. Javascript сегодня unicode (в большинстве случаев JavaScript).

0

\u{...} является BMP и выше escape-последовательностями Unicode, а \u1234 - это BMP - только escape-последовательности. Обобщенный формат \u{...} является новой особенностью ES6. Поддержка для них будет полностью зависеть от ваших целевых JS-сред, или если вы используете транспилер.