【问题标题】:Python 2.7, how to assign the "unicode literal representation" of a unicode instance to an str instance?Python 2.7,如何将 unicode 实例的“unicode 文字表示”分配给 str 实例?
【发布时间】:2016-04-05 08:59:32
【问题描述】:

让我们假设一个unicode 实例:

uni = u"but\u014dden"

现在,我们可以调用 string = uni.encode("utf-8") 来输出该对象的 utf-8 编码字节字符串表示。但这不是我们想要达到的。相反,我们希望将此变量的 unicode 文字表示分配给一个字节字符串,因此以下语句的计算结果为 true:

# string = do_the_thing(uni)
string == "u\"but\\u014dden\""

【问题讨论】:

    标签: string python-2.7 unicode


    【解决方案1】:

    使用 repr() function 从 unicode 对象创建文字:

    string = repr(uni)
    

    这将使用\uhhhh 转义序列来处理 U+00FF 上的 所有 个代码点;它将使用 \xhh 转义符来处理 ASCII 和 Latin-1 范围内的任何不可打印的内容,并使用标准的单字母转义符(如 \n)来处理 一些 字符定义。它也支持单引号而不是双引号,除非字符串值包含单引号(并且没有双引号)。

    演示:

    >>> uni = u"but\u014dden"
    >>> repr(uni)
    "u'but\\u014dden'"
    >>> repr(u'Latin 1 and a newline: å\n')
    "u'Latin 1 and a newline: \\xe5\\n'"
    >>> repr(u'Quoting 1: \'')
    'u"Quoting 1: \'"'
    >>> repr(u'Quoting 2: \'\"')
    'u\'Quoting 2: \\\'"\''
    

    【讨论】:

    • 我有一种感觉,它必须简单:谢谢,接受这个投票; )
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-30
    • 2018-03-22
    • 2011-10-30
    • 2018-03-19
    • 1970-01-01
    • 2015-09-14
    • 1970-01-01
    相关资源
    最近更新 更多