词法错误:遇到:"" (0),后面是:
我需要开始处理一些外文字符,但在这个过程中,我觉得我把一个文件的编码搞得一团糟。
我遇到的错误是:
Lexical error at line 1, column 8. Encountered: "" (0), after : ""
这个文件的第一行是:
import xml.etree.cElementTree as ET
还有一点需要注意的是:当我把上面那行复制到文本框里提问时,提交后每个字符之间都出现了一个看不见的字符(e)。
我尝试通过添加明确的编码定义来修复这个问题,但没有成功:
# -*- coding: utf-8 -*-
我也无法通过Hg把文件恢复到之前的版本,也不能把代码复制粘贴到新文件里,或者用复制粘贴的代码替换掉损坏的文件。
请帮帮我!
1 个回答
3
如果里面确实有一个零字符,你可能是插入了一些UTF-16/UCS-2格式的文本。这种特殊的Unicode编码在每个ASCII字符之间会有一个零字节。
要确认这一点,最好的办法是用类似于 od -xcb myfile.py
的命令对你的文件进行十六进制转储。
如果真是这样的话,你就需要用能看到这些字符的工具来编辑文件,并把它们修复好。
我个人推荐使用 vi
(因为我比较习惯),但我不想引发什么争论,尤其是和Emacs的粉丝们。在 vi
中,这些零字符很可能会显示为 ^@
字符。