Uruchamiając program Pythona, który wczyta ze standardowego wejścia, pojawia się następujący błąd:Python: UnicodeEncodeError podczas odczytu z stdin
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 320: ordinal not in range(128)
Jak mogę to naprawić?
Uwaga: Ten błąd występuje wewnętrzny do antlr a linia wygląda tak:
self.strdata = unicode(data)
Ponieważ nie chcę, aby zmodyfikować kod źródłowy, Chciałbym przejść w coś, co jest dopuszczalne .
Kod wejściowy wygląda tak:
#!/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()
Jaki jest Twój kod do wejścia? – kennytm
Dodałem go powyżej .... – hansfbaier
Zauważ, że * poprawnie * parsowanie TeX-a z czymkolwiek oprócz TeX-a będzie niemożliwe. –