【问题标题】:SyntaxError: Non-UTF-8 code starting with '\xae'SyntaxError: 以 '\xae' 开头的非 UTF-8 代码
【发布时间】:2021-09-23 18:00:35
【问题描述】:

我在 selenium 中使用 Python 创建脚本。使用以下代码时出现语法错误。我发现问题出在标题中的注册商标符号“®”上。请帮我解决这个问题。

from selenium import webdriver
from selenium.webdriver.common.keys import Keys

driver = webdriver.Firefox()

driver.get('https://advance.lexis.com')
assert 'Lexis Advance® Sign In | LexisNexis' in driver.title

【问题讨论】:

  • 在文件顶部添加# -*- coding: utf-8 -*-

标签: python


【解决方案1】:

您的问题内容很好:我检查了它,发现 StackOverflow 提供了编码为 UTF-8 的 ® 符号。

根据标题中的错误消息,Python 正在以 UTF-8 格式读取文件,但我怀疑您的编辑器使用不同的编码来保存文件。

也许它正在使用ISO 8859-1(又名“latin1”)或其他东西。 ISO 8859-1 将字节 0xAE 定义为注册商标符号。 Unicode还定义了代码点U+00AE作为注册商标符号。

您有两种解决方案:

  1. 确定您的编辑器使用什么编码,并通过将# encoding: foo 放在文件顶部告诉 python
  2. 将您的编辑器配置为使用 UTF-8

【讨论】:

  • 由于我是 python 新手,你能帮我用任何一种解决方案来解决这个问题吗?我正在使用 PyCharm 编写脚本。
  • 我使用 vim(和 eclipse)。也许this 会为您指明正确的方向。
【解决方案2】:

如果您在 Eclipse 中使用 Python 3 和 Pydev,另一种解决方案是在属性中将文件编码更改为 utf-8,如下所示。只需右键单击文件,转到属性并将编码更改为utf-8

utf-encoding pydev (eclipse)

【讨论】:

    【解决方案3】:

    这意味着您正在使用编辑器无法阅读或接受的字符。我正在编写一个秘密语言程序,我使用.replace() 来编辑文本。

    我使用了 字符,我遇到了同样的错误!但是我换成了别的字符,现在没问题了。

    【讨论】:

      猜你喜欢
      • 2014-05-30
      • 1970-01-01
      • 2020-09-13
      • 1970-01-01
      • 2022-01-25
      • 2022-08-02
      • 2018-05-03
      • 2023-03-29
      • 2020-11-09
      相关资源
      最近更新 更多