【问题标题】:UTF-8 characters usage in python3.4 script is throwing SyntaxError. How to use it?python3.4 脚本中的 UTF-8 字符使用抛出 SyntaxError。如何使用它?
【发布时间】:2016-09-30 19:16:22
【问题描述】:

我正在尝试在 python3.4 中执行以下代码行:

user ="ŠŒŽ‡†ƒ€‰"
print(user)

但上面的用户初始化行导致以下错误:

SyntaxError: (unicode error) 'utf-8' codec can't decode byte 0x8a in position 0: invalid start byte

我想稍后在身份验证中使用相同的用户。 python3.4脚本中如何使用UTF-8字符?

【问题讨论】:

  • 我无法复制这个。
  • 您的 EDITOR 是否保存为 UTF-8?
  • @Max:是的。将相同的代码复制到记事本并保存为 utf-8。试图执行它。结果如下: Traceback(最近一次调用最后一次):文件“test_1.py”,第 4 行,在 print(user) 文件“C:\Python34\lib\encodings\cp437.py”,行19、在encode return codecs.charmap_encode(input,self.errors,encoding_map)[0] UnicodeEncodeError: 'charmap' codec can't encode characters in position 0-4: char racter maps to

标签: python python-3.x utf-8


【解决方案1】:

您的文件实际上并未以 UTF-8 格式保存。假设在第一个非 ASCII 字符 (Š) 上出现语法错误,则文件很可能以 Windows 1252 编码,该字符将该字符编码为 0x8A。如果您希望继续使用此编码,请将此行添加到 Python 文件的顶部:

# -*- coding: windows-1252 -*-

【讨论】:

  • @C8H10N4O2: 将编码声明为 UTF-8 仅在文件实际 为 UTF-8 时才有效。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-10-16
  • 2018-05-17
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多