Управляющие символы юникода что это

Управляющие символы

Управля́ющие си́мволы — элементы данной кодировки, которым не приписано графическое представление, но которые используются для управления устройствами, организации передачи данных и других целей.

Сейчас для этих целей применяются форматы файлов, языки управления устройствами (такие как Postscript) и сетевые протоколы. Поэтому многие управляющие символы сейчас или не используются вообще, или используются не по назначению.

Стандарт POSIX требует обязательного наличия лишь восьми управляющих символов — \0, \a, \b, \t, \n, \v, \f, \r (см. переносимый набор символов).

Управляющие символы ASCII

НомерАнглийское названиеРусское названиеСоче-
тание
кла-
виш
Escape
после-
дова-
тель-
ность
Назначение
00NULLпустой символ\0Этот символ ничего не делает. Некоторые терминалы изображают его как пробел, но это неправильно. Часто NULL используют для обозначения конца цепочки символов (например, в языке C).
01START OF HEADINGначало заголовка^AВ настоящее время используется в консоли маршрутизаторов Cisco.
02START OF TEXTначало текста^BВ настоящее время используется в консоли маршрутизаторов Cisco.
03END OF TEXTконец текста^CПри вводе на терминале обычно интерпретируется как сигнал прерывания.
04END OF TRANSMISSIONконец передачи^DПри вводе на терминале в UNIX-системах интерпретируется как конец вводимых данных. Если текущая программа брала данные с терминала, то она завершается, как только обработает всё, что было до символа ^D.
05ENQUIRYзапрос^EИспользовался в телетайпной связи. В ответ предполагалось получить идентификационную строку удалённого аппарата.
06ACKNOWLEDGEподтверждение^FИспользовался в телетайпной связи.
07BELLзвуковой сигнал^G\aЕсли этот символ послать на принтер или на терминал, то ничего не напечатается, но послышится звуковой сигнал.
08BACKSPACEвозврат на шаг^H\bПеремещает позицию печати на один символ назад. На принтерах может использоваться для наложения одного символа на другой, например a BS ^ = â. При вводе с терминала иногда используется для стирания предшествующего символа («забой»).
09CHARACTER TABULATION (horizontal tabulation)горизонтальная табуляция^I\tПеремещает позицию печати к следующей позиции горизонтальной табуляции.
0ALINE FEEDперевод строки^J\nПеремещает позицию печати на одну строку вниз. В текстовых файлах в Unix разделяет строки.
0BLINE TABULATION (vertical tabulation)вертикальная табуляция^K\vПеремещает позицию печати к следующей позиции вертикальной табуляции. На терминалах этот символ обычно эквивалентен переводу строки.
0CFORM FEEDпрогон страницы, смена страницы^L\fВыбрасывает текущую страницу и начинает печать со следующей. На терминалах этот символ обычно эквивалентен переводу строки (хотя в принципе можно было бы его использовать для очистки экрана).
0DCARRIAGE RETURNвозврат каретки^M\rПеремещает позицию печати в крайнее левое положение. В текстовых файлах в Mac OS (но не Mac OS X) разделяет строки. В CP/M, MS-DOS и Microsoft Windows для разделения строк в текстовых файлах используется сочетание символов \r\n.
0ESHIFT OUT (locking-shift one)режим национальных символов^NВ КОИ-7 включает русский режим. На некоторых принтерах включает режим символов двойной ширины.
0FSHIFT IN (locking-shift zero)режим обычного ASCII^OВ КОИ-7 включает латинский режим. На некоторых принтерах включает режим узких символов.
10DATA LINK ESCAPEосвобождение канала данных^PОзначает, что следующий за ним управляющий символ должен восприниматься как данные, а не как управляющий символ.
11DEVICE CONTROL ONE1-й код управления устройством^QНа терминалах разрешает продолжить вывод данных.
12DEVICE CONTROL TWO2-й код управления устройством^R
13DEVICE CONTROL THREE3-й код управления устройством^SНа терминалах временно прерывает (приостанавливает) вывод данных.
14DEVICE CONTROL FOUR4-й код управления устройством^T
15NEGATIVE ACKNOWLEDGEотрицательное подтверждение^UИспользовался в телетайпной связи.
16SYNCHRONOUS IDLEпустой символ для синхронного режима передачи^VНекоторые линии связи устроены так, что требуют непрерывной передачи данных. Если передавать нечего, то передают этот символ.
17END TRANSMISSION BLOCKконец блока передаваемых данных^W
18CANCELотмена^XДанные, которые идут перед ним, некорректны. (Обычно речь идёт об одной строке.)
19END OF MEDIUMконец носителя^YИспользовался, напр., если закончилась перфолента и т.п.
1ASUBSTITUTEсимвол замены^ZСтавится на месте символов, значения которых были потеряны при передаче. В CP/M и MS-DOS использовался для обозначения конца текстовых файлов и конца вводимых с консоли данных (хотя для этого были предназначены символы ^C и ^D). Некоторые текстовые редакторы под DOS автоматически добавляли в конце файла ^Z.
1BESCAPEАльтернативный регистр №2 (АР2)^[Означает, что следующие за ним символы имеют какое-то другое значение, отличное от того, которое определено в ASCII. Обычно начинает управляющие последовательности.
1CINFORMATION SEPARATOR FOUR (file separator)разделитель данных № 4 (разделитель файлов)^\
1DINFORMATION SEPARATOR THREE (group separator)разделитель данных № 3 (разделитель групп)^]
1EINFORMATION SEPARATOR TWO (record separator)разделитель данных № 2 (разделитель записей)^^Видимо, предназначался для разделения записей в базах данных, но практически никогда не используется для этого.
1FINFORMATION SEPARATOR ONE (unit separator)разделитель данных № 1 (разделитель полей)^_Видимо, предназначался для разделения полей в базах данных, но практически никогда не используется для этого.
7FDELETEудаление^?Предназначен для забивания ошибочно пробитых символов на семидорожечных перфолентах (поскольку обозначается пробитием дырочек во всех дорожках), поэтому там он эквивалентен пустому символу (\0). На терминалах может генерироваться нажатием либо кнопки Backspace, либо кнопки Delete.

Управляющие символы ISO 8859

80, PADDING CHARACTER, символ-заполнитель.

82, BREAK PERMITTED HERE, здесь разрешён разрыв строки.

83, NO BREAK HERE, здесь не разрешён разрыв строки.

85, NEXT LINE, следующая строка. Одновременно переводит строку и возвращает позицию печати к началу строки (эквивалентно \r\n).

86, START OF SELECTED AREA, начало выделенной области.

87, END OF SELECTED AREA, конец выделенной области.

88, CHARACTER TABULATION SET, установка позиций горизонтальной табуляции.

89, CHARACTER TABULATION WITH JUSTIFICATION, установка позиций и выравнивания горизонтальной табуляции.

8A, LINE TABULATION SET, установка позиций вертикальной табуляции.

8B, PARTIAL LINE FORWARD, частичный перевод строки вперёд.

, PARTIAL LINE BACKWARD, частичный перевод строки назад.

8D, REVERSE LINE FEED, обратный перевод строки.

8E, SINGLE SHIFT TWO, 2-e значение для следующего символа.

8F, SINGLE SHIFT THREE, 3-e значение для следующего символа.

90, DEVICE CONTROL STRING, строка управления устройством.

91, PRIVATE USE ONE, пользовательский символ № 1.

92, PRIVATE USE TWO, пользовательский символ № 2.

93, SET TRANSMIT STATE, установка режима передачи.

94, CANCEL CHARACTER, символ отмены.

95, MESSAGE WAITING, есть сообщение.

96, START OF GUARDED AREA, начало защищённой области.

97, END OF GUARDED AREA, конец защищённой области.

98, START OF STRING, начало строки.

99, SINGLE GRAPHIC CHARACTER INTRODUCER, следующий символ интерпретируется как специальный графический.

9A, SINGLE CHARACTER INTRODUCER, следующий символ интерпретируется как управляющий.

9B, CONTROL SEQUENCE INTRODUCER, начало управляющей последовательности. Обычно этот символ эквивалентен Escape+[.

9C, STRING TERMINATOR, окончание строки.

9D, OPERATING SYSTEM COMMAND, команда операционной системы.

9E, PRIVACY MESSAGE, секретное сообщение.

9F, APPLICATION PROGRAM COMMAND, команда прикладной программы.

Управляющие символы Unicode

034F, COMBINING GRAPHEME JOINER. Объединить символы, стоящие слева и справа (создать лигатуру).

200B, ZERO-WIDTH SPACE, пробел нулевой ширины. При выравнивании по ширине может расширяться.

200C, ZERO WIDTH NON-JOINER. Запрещает образование лигатур.

200D, ZERO WIDTH JOINER. Разрешает образование лигатур.

200E, LEFT-TO-RIGHT MARK. Писать слева направо.

200F, RIGHT-TO-LEFT MARK. Писать справа налево.

2028, LINE SEPARATOR, разделитель строк. Разделяет строки текста, но не абзацы.

2029, PARAGRAPH SEPARATOR, разделитель абзацев. Разделяет абзацы текста.

202A, LEFT-TO-RIGHT EMBEDDING. Начало текста, написанного слева направо, внутри текста, написанного справа налево.

202B, RIGHT-TO-LEFT EMBEDDING. Начало текста, написанного справа налево, внутри текста, написанного слева направо.

202C, POP DIRECTIONAL FORMATTING. Конец вставленного текста с другим направлением.

202D, LEFT-TO-RIGHT OVERRIDE. Заменить текст, написанный слева направа, текстом, написанным справа налево.

202E, RIGHT-TO-LEFT OVERRIDE. Заменить текст, написанный справа налево, текстом, написанным слева направо.

2060, WORD JOINER, соединитель слов.

FE01FE0F, VARIATION SELECTOR-1…16, выбор варианта начертания № 1 … № 16.

FEFF, ZERO WIDTH NO-BREAK SPACE / BYTE ORDER MARK, неразрывный пробел нулевой ширины / индикатор порядка байтов. Этот символ используется для указания того, что данный файл записан в UTF-16 или UTF-32 с определённым порядком байтов (поскольку символа FFFE нет, а в UTF-8 байты FE и FF не используются). Использование этого символа в качестве неразрывного пробела нулевой ширины не рекомендуется; для этого есть символ U+2060 (word joiner).

FFFD, REPLACEMENT CHARACTER, заменяющий символ. Используется, когда значение символа неизвестно или не может быть выражено в Уникоде (см. также символ 1A).

E0100E01EF, VARIATION SELECTOR-17…256, выбор варианта начертания № 17 … № 256.

Кодировки символов
Основы →алфавит • текст ( файл • данные ) • набор символов • конверсия
Исторические кодировки →Докомп.: семафорная (Макарова) • Морзе • Бодо • МТК-2Комп.: 6 бит • УПП • RADIX-50 • EBCDIC ( ДКОИ-8 ) • КОИ-7 • ISO 646
совре-
менное
8-битное
представ-
ление
символы →ASCII ( управляющие • печатные )не-ASCII ( псевдографика )
8бит. код.стр.Разные → Кириллица: КОИ-8 • ГОСТ 19768-87 • MacCyrillic
ISO 8859 →1(лат.) 2 3 4 5(кир.) 6 7 8 9 10 11 12 13 14 15(€) 16
Windows →1250 1251(кир.) 1252 1253 1254 1255 1256 1257 1258 | WGL4
IBM&DOS →437 • 850 • 852 • 855 • 866 «альт.» • ( МИК ) • ( НИИ ЭВМ )
Много-
байтные
Традиционные →DBCS ( GB2312 ) • HTML
Unicode →UTF-16 • UTF-8 • список символов ( кириллица )
Связанные
темы →
интерфейс пользователя • раскладка клавиатуры • локаль • перевод строки • шрифт • кракозябры • транслит • нестандартные шрифты • текст как изображениеУтилиты: iconv • recode

Полезное

Смотреть что такое «Управляющие символы» в других словарях:

управляющие символы — В коммуникациях любые дополнительные символы, используемые для управления передачей или ее облегчения (например, символы, связанные с опросом, кадрированием, синхронизацией, контролем ошибок и т.п.). [http://www.lexikon.ru/dict/net/index.html]… … Справочник технического переводчика

управляющие символы ФОРТРАНа — — [http://slovarionline.ru/anglo russkiy slovar neftegazovoy promyishlennosti/] Тематики нефтегазовая промышленность EN Fortran control characters … Справочник технического переводчика

Управляющие последовательности ANSI — У этого термина существуют и другие значения, см. ANSI (значения). Управляющие символы ANSI (англ. ANSI escape code) символы, встраиваемые в текс … Википедия

Управляющие знаки — Управляющие символы элементы данной кодировки, которым не приписано графическое представление, но которые используются для управления устройствами, организации передачи данных и других целей. Сейчас для этих целей применяются форматы файлов,… … Википедия

Символы, представленные в Юникоде — В Юникоде зарезервировано 1 112 064 (= 220 + 216 − 211) позиций символов, из которых сейчас используется свыше 100 000. Первые 256 знакомест совпадают с кодовой таблицей ISO 8859 1 («Латиница 1»). Кодовое… … Википедия

Представленные в Юникоде Символы — В Юникоде зарезервировано 1 114 112 (= 220 + 216) позиций символов, из которых сейчас используется свыше 100 000. Первые 256 знакомест совпадают с кодовой таблицей ISO 8859 1 («Латиница 1»). Кодовое пространство разделено на 17 «плоскостей» по… … Википедия

ГОСТ Р ИСО 22742-2006: Автоматическая идентификация. Кодирование штриховое. Символы линейного штрихового кода и двумерные символы на упаковке продукции — Терминология ГОСТ Р ИСО 22742 2006: Автоматическая идентификация. Кодирование штриховое. Символы линейного штрихового кода и двумерные символы на упаковке продукции оригинал документа: 3.8 Data Matrix : Двумерная матричная символика с коррекцией… … Словарь-справочник терминов нормативно-технической документации

Печатные символы — Печатные символы элементы набора символов, имеющие графическое представление, например в виде значка на бумаге или определённого рисунка на экране. Примерами печатных символов являются буквы, цифры, знаки препинания и псевдографические… … Википедия

Псевдографические символы — Псевдографика общее название символов, которые предназначены не для записи текста на каком либо языке, а для графического оформления интерфейса пользователя например, для рисования рамочек и таблиц. Псевдографика широко используется программами… … Википедия

ASCII — У этого термина существуют и другие значения, см. ASCII (значения). ASCII ASCII (англ. American Standard Code for Information … Википедия

Источник

Управляющие последовательности символов Юникода

Управляющая последовательность символов Юникода представляет собой символ Юникода. Управляющие последовательности символов Юникода обрабатываются в идентификаторах (§2.4.2), символьных литералах (§2.4.4.4) и правильных строковых литералах (§2.4.4.5). Управляющая последовательность символов Юникода не обрабатывается в других местах (например, для образования оператора, знака пунктуации или ключевого слова).

unicode-escape-sequence:
\u hex-digit hex-digit hex-digit hex-digit
\U hex-digit hex-digit hex-digit hex-digit hex-digit hex-digit hex-digit hex-digit

Управляющая последовательность Юникода (escape-последовательность Юникода) представляет собой один символ Юникода, образованный шестнадцатеричным числом, следующим за символами «\u» или «\U». Поскольку в C# используется 16-разрядная кодировка элементов кода Юникода в символьных и строковых значениях, символ Юникода в диапазоне от U+10000 до U+10FFFF запрещен в строковом литерале и представляется с помощью суррогатной пары Юникода в строковом литерале. Символы Юникода с элементами кода выше 0x10FFFF не поддерживаются.

Многократные трансляции не выполняются. Например, строковый литерал «\u005Cu005C» эквивалентен «\u005C», а не «\». Значение Юникода \u005C является символом «\».

class Class1
<
static void Test(bool \u0066) <
char c = ‘\u0066’;
if (\u0066)
System.Console.WriteLine(c.ToString());
>
>

показано несколько использований \u0066, escape-последовательности для буквы «f». Эта программа эквивалентна следующей:

class Class1
<
static void Test(bool f) <
char c = ‘f’;
if (f)
System.Console.WriteLine(c.ToString());
>
>

Идентификаторы

Правила для идентификаторов в этом разделе точно соответствуют правилам, рекомендованным в дополнении 31 к стандарту Юникода, за исключением следующего: знак подчеркивания разрешен в качестве начального символа (что традиционно для языка программирования C), escape-последовательности Юникода разрешены в идентификаторах, а символ «@» разрешен в качестве префикса, чтобы можно было использовать ключевые слова в качестве идентификаторов.

identifier:
available-identifier
@ identifier-or-keyword

available-identifier:
An identifier-or-keyword that is not a keyword

identifier-or-keyword:
identifier-start-character identifier-part-charactersopt

identifier-start-character:
letter-character
_ (the underscore character U+005F)

identifier-part-characters:
identifier-part-character
identifier-part-characters identifier-part-character

identifier-part-character:
letter-character
decimal-digit-character
connecting-character
combining-character
formatting-character

letter-character:
A Unicode character of classes Lu, Ll, Lt, Lm, Lo, or Nl
A unicode-escape-sequence representing a character of classes Lu, Ll, Lt, Lm, Lo, or Nl

combining-character:
A Unicode character of classes Mn or Mc
A unicode-escape-sequence representing a character of classes Mn or Mc

decimal-digit-character:
A Unicode character of the class Nd
A unicode-escape-sequence representing a character of the class Nd

connecting-character:
A Unicode character of the class Pc
A unicode-escape-sequence representing a character of the class Pc

formatting-character:
A Unicode character of the class Cf
A unicode-escape-sequence representing a character of the class Cf

Дополнительные сведения об упомянутых выше классах символов Юникода см. в документе Стандарт Юникода, версия 3.0, раздел 4.5.

Примеры допустимых идентификаторов: «identifier1», «_identifier2» и «@if».

Идентификатор в соответствующей программе должен быть в каноническом формате, определенном формой нормализации C Юникода, как определено в дополнении 15 к стандарту Юникода. Поведение при обнаружении идентификатора не в форме нормализации C определяется реализацией, однако диагностика при этом не требуется.

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

class @class
<
public static void @static(bool @bool) <
if (@bool)
System.Console.WriteLine(«true»);
else
System.Console.WriteLine(«false»);
>
>

class Class1
<
static void M() <
cl\u0061ss.st\u0061tic(true);
>
>

определяется класс class со статическим методом с именем static, который принимает параметр с именем bool. Обратите внимание, что, поскольку управляющие последовательности Юникода не разрешены в ключевых словах, лексема «cl\u0061ss» является идентификатором, причем тем же идентификатором, что и «@class».

Два идентификатора считаются одинаковыми, если они идентичны после применения следующих преобразований в таком порядке:

· если используется префикс «@», он удаляется;

· каждая последовательность управляющих символов Юникода преобразуется в соответствующий символ Юникода;

· все символы управления форматом удаляются.

Идентификаторы, содержащие два последовательных символа подчеркивания (U+005F), зарезервированы для использования в реализации. Например, реализация может предоставлять расширенные ключевые слова, начинающиеся с двух символов подчеркивания.

Ключевые слова

Ключевое слово — это подобная идентификатору зарезервированная последовательность символов. Ключевое слово нельзя использовать в качестве идентификатора за исключением его использования с префиксом @.

keyword: one of
abstract as base bool break
byte case catch char checked
class const continue decimal default
delegate do double else enum
event explicit extern false finally
fixed float for foreach goto
if implicit in int interface
internal is lock long namespace
new null object operator out
override params private protected public
readonly ref return sbyte sealed
short sizeof stackalloc static string
struct switch this throw true
try typeof uint ulong unchecked
unsafe ushort using virtual void
volatile while

В некоторых положениях грамматики особые идентификаторы имеют особое значение, но не являются ключевыми словами. Такие идентификаторы иногда называются «контекстными ключевыми словами». Например, в объявлении свойства идентификаторы get и set имеют особое значение (§10.7.2). Идентификатор, отличный от get или set, никогда не разрешается в этих положениях, поэтому такое использование не приводит к конфликту с использованием этих слов в качестве идентификаторов. В других случаях, как, например, с идентификатором var в объявлениях с неявно типизированной локальной переменной (§8.5.1), контекстное ключевое слово может конфликтовать с объявленными именами. Тогда объявленное имя получает приоритет над использованием идентификатора в качестве контекстного ключевого слова.

Литералы

Литерал — это представление значения в исходном коде.

literal:
boolean-literal
integer-literal
real-literal
character-literal
string-literal
null-literal

Логические литералы

Логический литерал может иметь два значения: true и false.

boolean-literal:
true
false

Логический литерал имеет тип bool.

Целочисленные литералы

Целочисленные литералы используются для записи значений типа int, uint, long или ulong. Целочисленные литералы имеют две возможных формы: десятичную и шестнадцатеричную.

integer-literal:
decimal-integer-literal
hexadecimal-integer-literal

decimal-integer-literal:
decimal-digits integer-type-suffixopt

decimal-digits:
decimal-digit
decimal-digits decimal-digit

decimal-digit: one of
0 1 2 3 4 5 6 7 8 9

integer-type-suffix: one of
U u L l UL Ul uL ul LU Lu lU lu

hexadecimal-integer-literal:
0x hex-digits integer-type-suffixopt
0X hex-digits integer-type-suffixopt

hex-digits:
hex-digit
hex-digits hex-digit

hex-digit: one of
0 1 2 3 4 5 6 7 8 9 A B C D E F a b c d e f

Тип целочисленного литерала определяется следующим образом:

· если литерал без суффикса, его тип — первый из этих типов, в которых его значение может быть представлено: int, uint, long, ulong;

· если литерал имеет суффикс U или u, он относится к первому из этих типов, в которых его значение может быть представлено как uint или ulong;

· если литерал с суффиксом L или l, его тип — первый из этих типов, в которых его значение может быть представлено: long и ulong;

· если литерал имеет суффикс UL, Ul, uL, ul, LU, Lu, lU или lu, он относится к типу ulong.

Если представленное целочисленным литералом значение находится за пределами диапазона типа ulong, выдается ошибка времени компиляции.

Рекомендуется использовать L вместо l при записи литералов типа long, так как букву l легко спутать с цифрой 1.

Для записи минимально возможных значений int и long в виде десятичных целочисленных литералов существуют следующие два правила:

· если десятичный целочисленный литерал со значением 2147483648 (2 31 ) и без суффикса целочисленного типа появляется в качестве лексемы, непосредственно следующей за лексемой оператора унарного минуса (§7.7.2), результатом является константа типа int со значением −2147483648 (−2 31 ). Во всех других ситуациях десятичный целочисленный литерал относится к типу uint.

· если десятичный целочисленный литерал со значением 9223372036854775808 (2 63 ) и без суффикса целочисленного типа или с суффиксом целочисленного типа L или l появляется в качестве лексемы, непосредственно следующей за лексемой оператора унарного минуса (§7.7.2), результатом является константа типа long со значением −9223372036854775808 (−2 63 ). Во всех других ситуациях десятичный целочисленный литерал имеет тип ulong;

Действительные литералы

Действительные литералы используются для записи значений типа float, double или decimal.

exponent-part:
e signopt decimal-digits
E signopt decimal-digits

real-type-suffix: one of
F f D d M m

Если суффикс действительного типа не указан, типом действительного литерала является double. Иначе суффикс действительного типа определяет тип действительного литерала следующим образом:

· Действительный литерал с суффиксом F или f относится к типу float. Например, каждый из литералов 1f, 1.5f, 1e10f и 123.456F относится к типу float.

· действительный литерал с суффиксом D или d имеет тип double. Например, литералы 1d, 1.5d, 1e10d и 123.456D все имеют тип double;

· действительный литерал с суффиксом M или m имеет тип decimal. Например, литералы 1m, 1.5m, 1e10m и 123.456M все имеют тип decimal; Этот литерал преобразуется в значение типа decimal, принимая его точное значение и при необходимости округляя до ближайшего могущего быть представленным значения с помощью банковского округления (§4.1.7). Любой масштаб, видимый в литерале, сохраняется, если только значение не округляется и не равно нулю (в этом последнем случае знак и масштаб будут равны 0). Следовательно, синтаксический разбор литерала 2.900m создаст десятичное значение со знаком 0, коэффициентом 2900 и масштабом 3.

Если указанный литерал не удается представить в предписанном типе, выдается ошибка времени компиляции.

Значение действительного литерала с типом float или double определяется с помощью режима «округления до ближайшего» по стандарту IEEE.

Обратите внимание, что в действительном литерале всегда требуются десятичные цифры после десятичной точки. Например, 1.3F — это действительный литерал, а 1.F — нет.

Символьные литералы

Символьный литерал представляет один символ и обычно состоит из символа в кавычках, например ‘a’.

character:
single-character
simple-escape-sequence
hexadecimal-escape-sequence
unicode-escape-sequence

single-character:
Any character except ‘ (U+0027), \ (U+005C), and new-line-character

simple-escape-sequence: one of
\’ \» \\ \0 \a \b \f \n \r \t \v

hexadecimal-escape-sequence:
\x hex-digit hex-digitopt hex-digitopt hex-digitopt

Символ, следующий за обратной косой чертой (\) в символе, должен быть одним из следующих: ‘, «, \, 0, a, b, f, n, r, t, u, U, x, v. Иначе возникает ошибка времени компиляции.

Шестнадцатеричная escape-последовательность представляет собой один символ Юникода со значением, образованным шестнадцатеричным числом, следующим за \x.

Если значение, представленное символьным литералом, больше U+FFFF, вызывается ошибка времени компиляции.

Управляющая последовательность символов Юникода (§2.4.1) в символьном литерале должна быть в диапазоне от U+0000 до U+FFFF.

Простая управляющая последовательность представляет собой кодировку символа Юникода, как показано в следующей таблице.

Escape-последовательностьИмя символаКодировка Юникода
\’Одинарная кавычка0x0027
Двойные кавычки0x0022
\\Обратная косая черта0x005C
\0Null0x0000
\aПредупреждение0x0007
\bВозврат0x0008
\fПеревод страницы0x000C
\nНовая строка0x000A
\rВозврат каретки0x000D
\tГоризонтальная табуляция0x0009
\vВертикальная табуляция0x000B

Символьный литерал относится к типу char.

Строковые литералы

В C# поддерживается две формы строковых литералов: правильные строковые литералы и буквальные строковые литералы.

Правильный строковый литерал состоит из нуля или более символов, заключенных в двойные кавычки, например «hello», и может включать как простые управляющие последовательности (например \t для символа табуляции), так и шестнадцатеричные escape-последовательности и escape-последовательности Юникода.

Буквальный строковый литерал состоит из символа @ с последующими символом двойных кавычек, нулем или более символов и закрывающим символом двойных кавычек. Простым примером является @»hello». В буквальном строковом литерале символы между разделителями интерпретируются буквально, единственным исключением является управляющая последовательность кавычки. В частности, простые управляющие последовательности, шестнадцатеричные escape-последовательности и escape-последовательности Юникода не обрабатываются в буквальных строковых литералах. Буквальный строковый литерал может занимать несколько строк.

string-literal:
regular-string-literal
verbatim-string-literal

regular-string-literal-characters:
regular-string-literal-character
regular-string-literal-characters regular-string-literal-character

regular-string-literal-character:
single-regular-string-literal-character
simple-escape-sequence
hexadecimal-escape-sequence
unicode-escape-sequence

single-regular-string-literal-character:
Any character except » (U+0022), \ (U+005C), and new-line-character

verbatim-string-literal-characters:
verbatim-string-literal-character
verbatim-string-literal-characters verbatim-string-literal-character

verbatim-string-literal-character:
single-verbatim-string-literal-character
quote-escape-sequence

single-verbatim-string-literal-character:
Any character except «

Символ, следующий за символом обратной косой черты (\) в символе правильного строкового литерала, должен быть одним из следующих символов: ‘, «, \, 0, a, b, f, n, r, t, u, U, x, v. Иначе возникает ошибка времени компиляции.

string a = «hello, world»; // hello, world
string b = @»hello, world»; // hello, world

string c = «hello \t world»; // hello world
string d = @»hello \t world»; // hello \t world

string e = «Joe said \»Hello\» to me»; // Joe said «Hello» to me
string f = @»Joe said «»Hello»» to me»; // Joe said «Hello» to me

string g = «\\\\server\\share\\file.txt»; // \\server\share\file.txt
string h = @»\\server\share\file.txt»; // \\server\share\file.txt

string i = «one\r\ntwo\r\nthree»;
string j = @»one
two
three»;

показаны разнообразные строковые литералы. Последний строковый литерал j является буквальным строковым литералом, занимающим несколько строк. Символы между кавычками, включая пробелы, например символы новой строки, сохраняются буквально.

Поскольку в шестнадцатеричной escape-последовательности может быть переменное число шестнадцатеричных цифр, строковый литерал «\x123» содержит один символ с шестнадцатеричным значением 123. Чтобы создать строку, содержащую символ с шестнадцатеричным значением 12 и с последующим символом 3, можно написать «\x00123» или «\x12» + «3».

Строковый литерал имеет тип string.

Результатом каждого строкового литерала не обязательно является новый экземпляр строки. Если два или более строковых литерала, эквивалентных согласно оператору равенства строк (§7.10.7), появляются в одной программе, эти строковые литералы ссылаются на один и тот же экземпляр строки. Например, программа

class Test
<
static void Main() <
object a = «hello»;
object b = «hello»;
System.Console.WriteLine(a == b);
>
>

выведет True, так как эти два литерала ссылаются на один и тот же экземпляр строки.

Литерал null

Литерал NULL может быть неявно преобразован в ссылочный тип или обнуляемый тип.

Управляющие символы юникода что это. Смотреть фото Управляющие символы юникода что это. Смотреть картинку Управляющие символы юникода что это. Картинка про Управляющие символы юникода что это. Фото Управляющие символы юникода что это

Управляющие символы юникода что это. Смотреть фото Управляющие символы юникода что это. Смотреть картинку Управляющие символы юникода что это. Картинка про Управляющие символы юникода что это. Фото Управляющие символы юникода что это

Механическое удерживание земляных масс: Механическое удерживание земляных масс на склоне обеспечивают контрфорсными сооружениями различных конструкций.

Управляющие символы юникода что это. Смотреть фото Управляющие символы юникода что это. Смотреть картинку Управляющие символы юникода что это. Картинка про Управляющие символы юникода что это. Фото Управляющие символы юникода что это

Поперечные профили набережных и береговой полосы: На городских территориях берегоукрепление проектируют с учетом технических и экономических требований, но особое значение придают эстетическим.

Управляющие символы юникода что это. Смотреть фото Управляющие символы юникода что это. Смотреть картинку Управляющие символы юникода что это. Картинка про Управляющие символы юникода что это. Фото Управляющие символы юникода что это

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *