Подтвердить что ты не робот

Какая кодировка использует префикс \x (обратная косая черта)?

Я пытаюсь декодировать текст, который префикс некоторых специальных символов с помощью \x. Я разработал следующие сопоставления вручную:

\x28   (
\x29   )
\x3a   :

e.g. 12\x3a39\x3a03 AM

Кто-нибудь знает, что такое кодировка?

4b9b3361

Ответ 1

Это ASCII. Все вхождения четырех символов \xST преобразуются в 1 символ, код ASCII которого SThexadecimal), где S и T - любые из 0123456789abcdefABCDEF.

Ответ 2

Обозначение '\xAB' используется в C, С++, Perl и других языках, берущих cue из C, как способ выражения шестнадцатеричных кодов символов в середине строки.

Обозначение '\007' означает использование восьмеричного кода символа, когда после обратного слэша есть цифры.

В C99 и более поздних версиях вы также можете использовать \uabcd и \U00abcdef для кодирования символов Unicode в шестнадцатеричном формате (с требуемыми шестнадцатеричными цифрами 4 и 8, первые две шестнадцатеричные цифры в \U должны быть 0, чтобы быть действительный, и часто третья цифра будет 0 тоже - 1 является единственным другим допустимым значением).

Обратите внимание, что в C восьмеричные escape-лимиты ограничены максимум тремя цифрами, но шестнадцатеричные escape-последовательности не ограничены 2 или 3 цифрами; шестнадцатеричный escape заканчивается на первом символе, а не шестнадцатеричной цифрой. В этом вопросе последовательность "12\x3a39\x3a03". Это строка, содержащая 4 символа: 1, 2, \x3a39 и \x3a03. Фактическое значение, используемое для четырехзначных шестнадцатеричных символов, определяется реализацией. Для достижения желаемого результата (используя \x3A для представления двоеточия :), код должен будет использовать конкатенацию строк:

"12\x3a" "39\x3a" "03"

Теперь это содержит 8 символов: 1, 2, :, 3, 9, :, 0, 3.

Ответ 3

Я предполагаю, что вы имеете дело с строкой unicode, которая была закодирована иначе, чем выходной поток, на который он был отправлен. то есть. вывод строки utf-16 на устройство latin-1. В этой ситуации определенные символы будут выводиться как escape-значения, чтобы избежать отправки управляющих символов или неправильных символов на устройство вывода. Это происходит в python по крайней мере.