python - 词法错误 : Encountered: "" (0), 之后: ""

标签 python lexical

我需要开始处理外来字符,在这样做的过程中,我想我真的搞砸了文件的编码。

我得到的错误是:

Lexical error at line 1, column 8.  Encountered: "" (0), after :  ""

文件的第一行是:

import xml.etree.cElementTree as ET

另请注意:当我将上面的行粘贴到文本区域中提出这个问题并提交时,每个字符之间都出现了一个未知字符(e 我无法通过添加显式编码定义来解决此问题:

# -*- coding: utf-8 -*-

我也无法将文件恢复(使用 Hg)到以前的版本,也无法将代码复制/粘贴到新文件中,或者用复制/粘贴的代码替换损坏的文件。

请帮忙!

最佳答案

如果其中确实是一个零字符,您可能会发现您已经注入(inject)了一些 UTF-16/UCS-2 文本。该特定的 Unicode 编码将在每个 ASCII 字符之间有一个零字节。

找出答案的最佳方法是使用 od -xcb myfile.py 之类的内容对您的文件进行十六进制转储。

如果这种情况,那么您需要使用能够看到这些字符的工具来编辑文件,并修复它们。

vi 将是我的第一选择(因为这是我习惯的),但我不想与 Emacs 光照派开始任何圣战。在 vi 中,它们很可能会显示为 ^@ 字符。

关于python - 词法错误 : Encountered: "" (0), 之后: "",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6501115/

相关文章:

python - python装饰器函数流程

python - 正则表达式使用python提取括号内的值和括号前的单词

javascript - JavaScript 的词法环境如何在嵌套的 block 范围内维护变量声明?

java - com.github.javaparser.TokenMgrError:第39行第27栏的词法错误。遇到:“\u201a”(8218),之后:“\'\u00e2”

flex-lexer - Flex 在默认规则匹配时将换行符打印到标准输出 - 想要改变该行为

c - 在 Lex 的输入文件中插入文本(使用 C)

python - undefined symbol : PyUnicodeUCS2_Decode

python - 如何解决在 Linux Mint 18.1 中找不到 Django 'setup.py'?

python - 在将数据放入代码中时使用技巧来拯救程序员是否可以接受?

c++ - 我可以在C++中使用正则表达式使用哪些正则表达式来解析分隔符,运算符,标识符和实数?