Лексическая ошибка: Обнаружено: "" (0), после: "" - PullRequest
3 голосов
/ 28 июня 2011

Мне нужно было начать работать с иностранными символами, и при этом, я думаю, я по-королевски испортил кодировку файла.

Я получаю ошибку:

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

Первая строка файла:

import xml.etree.cElementTree as ET

Также примечание: когда я вставил строку выше в текстовую область, чтобы задать этот вопрос, и отправил, между каждым символом появился неизвестный символ (e Мне не удалось решить эту проблему, добавив явное определение кодировки:

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

Мне также не удалось ни вернуть файл (используя Hg) в предыдущую версию, ни скопировать / вставить код в новый файл, ни заменить поврежденный файл скопированным / вставленным кодом.

Пожалуйста, помогите!

1 Ответ

3 голосов
/ 28 июня 2011

Если там действительно нулевой символ, вы можете обнаружить, что вы ввели какой-то текст UTF-16 / UCS-2. Эта конкретная кодировка Unicode будет иметь нулевой байт между каждым символом ASCII.

Лучший способ выяснить это сделать шестнадцатеричный дамп вашего файла с чем-то вроде od -xcb myfile.py.

Если это , то вам нужно отредактировать файл, чтобы он мог видеть эти символы, и исправить их.

vi будет моим первым выбором (так как я привык к этому), но я не хочу начинать священные войны с иллюминатами Emacs. В vi они, скорее всего, будут отображаться как ^@ символов.

...