哪种编码使用\ x(反斜杠x)前缀?

时间:2009-05-20 20:01:09

标签: encoding internationalization

我正在尝试解码使用 \ x 为某些“特殊字符”添加前缀的文字。我已经手工制作了以下映射:

\x28   (
\x29   )
\x3a   :

e.g. 12\x3a39\x3a03 AM

有人认识到这种编码是什么吗?

4 个答案:

答案 0 :(得分:31)

这是ASCII。所有出现的四个字符\xST都将转换为1个字符,其ASCII代码为SThexadecimal},其中ST为任意一个0123456789abcdefABCDEF

答案 1 :(得分:17)

在C,C ++,Perl以及从C中获取提示的其他语言中使用'\xAB'表示法,作为在字符串中间表达十六进制字符代码的一种方式。

符号'\007'表示在反斜杠后面有数字时使用八进制代码。

在C99及更高版本中,您还可以使用\uabcd\U00abcdef对十六进制的Unicode字符进行编码(需要4位和8位十六进制数字; \U中的前两位十六进制数字必须0有效,通常第三位数也是0 - 1是唯一的其他有效值。

请注意,在C中,八进制转义限制为最多3位数,但十六进制转义不限于2或3位数;十六进制转义结束于第一个不是十六进制数字的字符。在问题中,序列为"12\x3a39\x3a03"。这是一个包含4个字符的字符串:12\x3a39\x3a03。用于4位十六进制字符的实际值是实现定义的。要获得所需的结果(使用\x3A表示冒号:),代码必须使用字符串连接:

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

现在包含8个字符:12:39:03

答案 2 :(得分:0)

我猜你正在处理的是一个unicode字符串,其编码方式与发送到的输出流的编码方式不同。即。一个utf-16字符串输出到latin-1设备。在这种情况下,某些字符将作为转义值输出,以避免将控制字符或错误字符发送到输出设备。这至少发生在python中。

答案 3 :(得分:0)

我用CyberChef做这种事情。

如果您从“收藏夹”列表中drop it in the input field and drag Magic进入食谱,它将告诉您转换,并且您可以使用the From_Hex recipe with a \x delimiter