Обозначение '\xAB'
используется в C, C ++, Perl и других языках, использующих реплику из C, как способ выражения шестнадцатеричных кодов символов в середине строки.
Обозначение '\007'
означает использование восьмеричного кода символа, когда после обратной косой черты есть цифры.
В C99 и более поздних версиях вы также можете использовать \uabcd
и \U00abcdef
для кодирования символов Юникода в шестнадцатеричном формате (требуется 4 и 8 шестнадцатеричных цифр; первые две шестнадцатеричные цифры в \U
должны быть 0
, чтобы допустимый, и часто третья цифра тоже будет 0
- 1
является единственным другим допустимым значением).
Обратите внимание, что в C восьмеричные экранирования ограничены максимум 3 цифрами, а шестнадцатеричные экранирования не ограничены 2 или 3 цифрами; шестнадцатеричное экранирование заканчивается первым символом, который не является шестнадцатеричной цифрой. В вопросе последовательность "12\x3a39\x3a03"
. Это строка, содержащая 4 символа: 1
, 2
, \x3a39
и \x3a03
. Фактическое значение, используемое для 4-значных шестнадцатеричных символов, определяется реализацией. Чтобы достичь желаемого результата (используя \x3A
для представления двоеточия :
), в коде нужно использовать конкатенацию строк:
"12\x3a" "39\x3a" "03"
Теперь содержит 8 символов: 1
, 2
, :
, 3
, 9
, :
, 0
, 3
.