语法错误:以'\ xe7'开头的非UTF-8代码

时间:2019-05-26 00:24:02

标签: python string encoding

我制作了一个包含中文和俄语单词的程序,但是当我运行它时,我在编码方面遇到了问题

在我共享的代码中,显示了带有一些俄语和汉字的完整句子。有了该变量分配,就会出现SyntaxError。但是当我编写句子= input()时,当用户输入相同的句子时,不会出现错误。

sentence='n紙sнo頭q愛z語u買gлd娜xтgлj鳥u買gлcхd娜u買 рj鳥pщi魚d娜gлh園d娜gлn紙r無z語 рr無pщl電pщv書kмz語u買gлkмu買o頭d娜r無n紙r無d娜o頭pщh園z語gлh園d娜gлpщcхo頭z語gлu買kмwзd娜cхgлsнgлz語r無kмd娜u買o頭pщh園z語gлpщgлz語aчi魚d娜o頭z語xтgлv書z語u買gлd娜cхgлv書j鳥pщcхgлn紙z語h園d娜l電z語xтgлv書r無d娜pщr無gлo頭z語h園z語gлo頭kмn紙z語gлh園d娜gлpщn紙cхkмv書pщv書kмz語u買d娜xтgлd娜u買o頭r無d娜gлxтj鳥xтgлh園kмwзd娜r無xтz語xтgлo頭kмn紙z語xтgлh園d娜gлd娜xтo頭r無j鳥v書o頭j鳥r無pщxтgлh園d娜gлh園pщo頭z語xтgлxтd娜gлd娜u買v書j鳥d娜u買o頭r無pщgлh園kмv書v書kмz語u買pщr無kмz語xтgлh園d娜gлh園pщo頭z語xтgлd娜u買gлd娜xтo頭d娜gлo頭j鳥o頭z語r無kмpщcхgлpщn紙r無d娜u買h園d娜r無d娜l電z語xтgлpщgлj鳥o頭kмcхkмñсpщr無gлd娜xтo頭pщgлd娜xтo頭r無j鳥v書o頭j鳥r無pщgлr無d娜wзkмxтpщu買h園z語gлxтj鳥xтgлl電d娜o頭z語h園z語xтgлl電pщxтgлj鳥o頭kмcхkмñсpщh園z語xт'
SyntaxError: Non-UTF-8 code starting with '\xe5' in file hjs.py on line 1, but no encoding declared; see http://python.org/dev/peps/pep-0263/ for details

我该如何解决?

1 个答案:

答案 0 :(得分:0)

首先,欢迎您使用Stack Overflow! 其次,您可以使用Python 3或针对Python 2来解决您的问题,如in this answer所述。

但是为什么?

好吧,根据上述PEP 263

  

如果未提供其他编码提示,Python将默认使用ASCII作为标准编码。

在PEP中,您可以看到上述答案所说的相同内容,以添加行# -*- coding: <encoding name> -*-

为什么Python 3不受此问题影响? 如here中所述,

  

从Python 3.0开始,该语言的str类型包含Unicode字符(...)

因此无需添加coding魔术注释。

有关上面链接的完整unicode文章的更多信息,这是一本好书,并且它是StackOverflow中的经典书,请参见this