Wenn ein Python-Programm ausgeführt wird, die von stdin liest, erhalte ich folgende Fehlermeldung:Python: UnicodeEncodeError beim Lesen von stdin
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 320: ordinal not in range(128)
Wie kann ich es beheben?
Hinweis: Der Fehler tritt auf interne antlr und die Zeile sieht wie folgt aus:
self.strdata = unicode(data)
Da will ich nicht den Quellcode ändern, Ich mag würde in etwas zu übergeben, die akzeptabel ist .
Der Eingangs Code sieht wie folgt aus:
#!/usr/bin/python
import sys
import codecs
import antlr3
import antlr3.tree
from LatexLexer import LatexLexer
from LatexParser import LatexParser
char_stream = antlr3.ANTLRInputStream(codecs.getreader("utf8")(sys.stdin))
lexer = LatexLexer(char_stream)
tokens = antlr3.CommonTokenStream(lexer)
parser = LatexParser(tokens)
r = parser.document()
Was ist Ihr Code für die Eingabe? – kennytm
Ich habe es oben hinzugefügt .... – hansfbaier
Beachten Sie, dass * richtig * TeX mit etwas außer TeX zu analysieren, wird fast unmöglich sein. –