encoding - poner - ¿Qué codificación utiliza el prefijo / x(barra diagonal inversa x)?
diagonal invertida en laptop (3)
Estoy intentando decodificar el texto que está prefijando ciertos ''caracteres especiales'' con / x . He elaborado las siguientes asignaciones a mano:
/x28 (
/x29 )
/x3a :
e.g. 12/x3a39/x3a03 AM
¿Alguien reconoce lo que es esta codificación?
Es ASCII . Todas las apariciones de los cuatro caracteres /xST
se convierten en 1 carácter, cuyo código ASCII es ST
(en hexadecimal ), donde S
y T
son cualquiera de 0123456789abcdefABCDEF
.
La notación ''/xAB''
se usa en C, C ++, Perl y otros lenguajes tomando un tono de C, como una forma de expresar códigos de caracteres hexadecimales en medio de una cadena.
La notación ''/007''
significa usar octal para el código de carácter, cuando hay dígitos después de la barra invertida.
En C99 y versiones posteriores, también puede usar /uabcd
y /U00abcdef
para codificar caracteres Unicode en hexadecimal (con 4 y 8 dígitos hexadecimales requeridos; los dos primeros dígitos hexadecimales en /U
deben ser 0
para que sea válido, ya menudo el tercer dígito ser 0
también - 1
es el único otro valor válido).
Tenga en cuenta que en C, los escapes octales están limitados a un máximo de 3 dígitos, pero los escapes hexadecimales no están limitados a 2 o 3 dígitos; el escape hexadecimal termina en el primer carácter que no es un dígito hexadecimal. En la pregunta, la secuencia es "12/x3a39/x3a03"
. Esa es una cadena que contiene 4 caracteres: 1
, 2
, /x3a39
y /x3a03
. El valor real utilizado para los caracteres hexadecimales de 4 dígitos está definido por la implementación. Para lograr el resultado deseado (usando /x3A
para representar dos puntos /x3A
, el código tendría que usar concatenación de cadenas:
"12/x3a" "39/x3a" "03"
Ahora contiene 8 caracteres: 1
, 2
, :
, 3
, 9
, :
, 0
, 3
.
Supongo que se trata de una cadena Unicode que se ha codificado de forma diferente a la secuencia de salida a la que se envió. es decir. una salida de cadena utf-16 a un dispositivo latin-1. En esa situación, ciertos caracteres se emitirán como valores de escape para evitar enviar caracteres de control o caracteres incorrectos al dispositivo de salida. Esto sucede al menos en python.