0

Декодировано

Unicode Escape

Закодировано

Unicode Escape
Формат
A-F

О эскейп-последовательность Unicode

Эскейп-последовательность Unicode преобразуют один символ в формат 4-значного шестнадцатеричного кода, например \uXXXX. Например, «A» станет «\u0041».

В DenCode, помимо формата \uXXXX, также поддерживаются следующие форматы обозначений.

ФорматРезультат преобразования «ABC»Описание / Язык программирования
\uXXXX\u0041\u0042\u0043Общие эскейп-последовательность Unicode
\u{X}\u{41}\u{42}\u{43}Lua
\x{X}\x{41}\x{42}\x{43}Perl
\X\41\42\43CSS
&#xX;ABCHTML, XML
%uXXXX%u0041%u0042%u0043Процентное кодирование (Нестандартный)
U+XXXXU+0041 U+0042 U+0043Стандартная запись Unicode для кодовых точек (разделенные пробелами)
0xX0x41 0x42 0x43Шестнадцатеричная запись кодовых точек (разделенные пробелами)

Некоторые из этих форматов упоминаются в RFC 5137 (ASCII Escaping of Unicode Characters) как BEST CURRENT PRACTICE, но не существует международного стандарта и т.д.

Формат %uXXXX поддерживается Microsoft IIS, но является нестандартным. Его можно закодировать в формате %u с помощью System.Web.HttpUtility.UrlEncodeUnicode в C#, но этот метод устарел с версии .NET Framework 4.5.

Обратите внимание, что в формате \X пробел рассматривается как разделитель и игнорируется при декодировании, как указано в CSS. В форматах U+XXXX и 0xX при кодировании каждый символ отделяется одним пробелом, а при декодировании, как и в формате \X, последующий подряд один пробел игнорируется.

Экранирование по имени Unicode

В качестве управляющих последовательностей Unicode также поддерживается экранирование по имени Unicode.

ФорматРезультат преобразования «A»Описание / Язык программирования
\N{name}\N{LATIN CAPITAL LETTER A}C++23, Python, Perl

Имена Unicode можно найти в Names List Charts - Unicode или NamesList.txt - Unicode.

Символы Unicode, отличные от BMP, в эскейп-последовательность Unicode

Для символов Unicode, не относящихся к BMP, кодовые точки не умещаются в четыре цифры, поэтому они выражаются в следующей форме обозначения для каждого языка программирования.

Результат преобразования «😀» (U+01F600), который является символом Unicode, отличным от BMP, выглядит следующим образом.

ФорматРезультат преобразования «😀» (U+01F600)Язык программирования
\uXXXX\uD83D\uDE00Java, Kotlin, Scala
\u{X}\u{1F600}C++23, Rust, Swift, JavaScript, PHP, Ruby, Dart, Lua
\U00XXXXXX\U0001F600C, C++, Objective-C, C#, Go, Python, R
\x{X}\x{1F600}Perl
\X\1F600CSS
&#xX;😀HTML, XML
%uXXXX%uD83D%uDE00-
U+XXXXU+1F600-
0xX0x1F600-
\N{name}\N{GRINNING FACE}C++23, Python, Perl

В форматах \uXXXX и %uXXXX не-BMP символы представлены двумя кодовыми единицами в виде суррогатных пар UTF-16. В других форматах символ представлен одной кодовой точкой.