【问题标题】:Unicode literals causing invalid syntax导致无效语法的 Unicode 文字
【发布时间】:2011-11-26 00:12:59
【问题描述】:

以下代码:

s = s.replace(u"&", u"&")

导致python出错:

SyntaxError: invalid syntax

" 解决问题之前删除u,但这应该可以正常工作吗?我正在使用 Python 3.1

【问题讨论】:

    标签: python python-3.x unicode unicode-literals


    【解决方案1】:

    u 在 Python 3 中不再使用。默认情况下,字符串文字是 unicode。见What's New in Python 3.0

    您不能再将 u"..." 文字用于 Unicode 文本。但是,对于二进制数据,您必须使用 b"..." 文字。

    【讨论】:

      【解决方案2】:

      在 Python 3 上,字符串是 unicode。没有必要(正如您所发现的,您不能)在字符串文字前放置 u 来指定 unicode。

      相反,您必须在字节文字之前放置一个b 以指定它不是 unicode。

      【讨论】:

        【解决方案3】:

        在 Python3.3+ 中,unicode 文字再次有效,参见What’s New In Python 3.3

        新的语法特性:

        生成器委托的新 yield from 表达式。
        再次为 str 对象接受 u'unicode' 语法。

        【讨论】:

          猜你喜欢
          • 2019-05-13
          • 1970-01-01
          • 1970-01-01
          • 2019-12-11
          • 2014-08-06
          • 2015-12-16
          • 2021-05-25
          • 2019-02-20
          • 2018-12-07
          相关资源
          最近更新 更多