字符串和字节字符串有什么区别?

发布于 2021-01-29 19:30:08

我正在使用一个返回字节字符串的库,我需要将其转换为字符串。

尽管我不确定有什么区别-如果有的话。

关注者
0
被浏览
214
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    假设使用Python 3(在Python
    2中,这种区别的定义不太明确)-字符串是字符序列,即unicode码点;这些是一个抽象概念,不能直接存储在磁盘上。毫无疑问,字节字符串是字节的序列-
    可以 存储在磁盘上的东西。它们之间的映射是一种 编码
    -其中有很多(并且无限可能)-并且您需要知道在特定情况下哪种适用才能进行转换,因为不同的编码可能会映射相同的字节到另一个字符串:


    >>> b'\xcf\x84o\xcf\x81\xce\xbdo\xcf\x82'.decode('utf-16')
    '蓏콯캁澽苏'
    >>> b'\xcf\x84o\xcf\x81\xce\xbdo\xcf\x82'.decode('utf-8')
    'τoρνoς'
    

    一旦知道要使用哪个.decode()字符串,就可以使用字节字符串的方法从中获取正确的字符串,如上所述。为了完整起见,.encode()字符串的方法是相反的:

    >>> 'τoρνoς'.encode('utf-8')
    b'\xcf\x84o\xcf\x81\xce\xbdo\xcf\x82'
    


知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看