Python将UTF-8字节转换为字符串

3
我遇到了将这些字节转换为字符串的困难:
 x = b'<strong>\xc5\xb7\xc3\xc0\xd0\xd4\xb8\xd0\xd0\xb1\xc1\xec\xb5\xa5\xbc\xe7\xb3\xa4\xd0\xe4\xb2\xbb\xb9\xe6\xd4\xf2\xc1\xac\xd2\xc2\xc8\xb9\xa3\xac\xb4\xf2\xd4\xec\xd1\xe7\xbb\xe1\xa1\xa2\xca\xb1\xc9\xd0\xb8\xd0\xca\xae\xd7\xe3\xa3\xac\xd5\xc3\xcf\xd4\xc5\xae\xd0\xd4\xf7\xc8\xc1\xa6\xa3\xac\xb4\xf3\xc1\xbf\xcf\xd6\xbb\xf5\xa3\xac\xbb\xb6\xd3\xad\xd0\xc2\xc0\xcf\xbf\xcd\xbb\xa7\xc4\xc3\xd1\xf9\xb2\xc9\xb9\xba\xa3\xa1</strong>'

如果我使用unicode-escape解码,我会得到奇怪的字符,例如:

'<strong>Å·ÃÀÐÔ¸ÐбÁìµ¥¼ç³¤Ðä²»¹æÔòÁ¬ÒÂȹ£¬´òÔìÑç»á¡¢Ê±ÉиÐÊ®×㣬ÕÃÏÔÅ®ÐÔ÷ÈÁ¦£¬´óÁ¿ÏÖ»õ£¬»¶Ó\xadÐÂÀÏ¿Í»§ÄÃÑù²É¹º£¡</strong>'

相比于中文字符,使用类似于 欧美性感斜领单肩长袖不规则连衣裙 的字母组合更为常见。


1
你从哪里得到这个字符串的?我已经尝试了所有可能的编码方式,但是没有一个看起来像你的。print("欧美性感斜领单肩长袖不规则连衣裙".encode()) 的输出结果是 b'\xe6\xac\xa7\xe7\xbe\x8e\xe6\x80\xa7\xe6\x84\x9f\xe6\x96\x9c\xe9\xa2\x86\xe5\x8d\x95\xe8\x82\xa9\xe9\x95\xbf\xe8\xa2\x96\xe4\xb8\x8d\xe8\xa7\x84\xe5\x88\x99\xe8\xbf\x9e\xe8\xa1\xa3\xe8\xa3\x99'。这个字符串是如何被编码成这些字节的? - Chris Doyle
你的字节无法解码为UTF-8。如果你运行x.decode('utf8'),它会抛出“invalid continuation byte”错误。请在https://dev59.com/aG035IYBdhLWcg3wNtRw上进一步了解此错误。 - Numan Ijaz
1个回答

6

您似乎使用了错误的编码方式,正确的编码方式应该是'GB2312'。

>>> x.decode('GB2312')
'<strong>欧美性感斜领单肩长袖不规则连衣裙... more symbols</strong>'

1
我不能在答案中发布这个网站,但我在这里找到了答案:http://xahlee.info/w/what_encoding_do_chinese_websites_use.html - Viktor Astakhov

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接