Khi chạy một chương trình Python mà đọc từ stdin, tôi nhận được lỗi sau:Python: UnicodeEncodeError khi đọc từ stdin
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 320: ordinal not in range(128)
Làm thế nào tôi có thể sửa chữa nó?
Lưu ý: Lỗi này xảy ra nội bộ để ANTLR và dòng trông như thế:
self.strdata = unicode(data)
Vì tôi không muốn thay đổi mã nguồn, Tôi muốn vượt qua trong một cái gì đó có thể chấp nhận .
Mã đầu vào trông như thế:
#!/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()
mã của bạn cho đầu vào là gì? – kennytm
Tôi đã thêm nó ở trên .... – hansfbaier
Lưu ý rằng * đúng cách * phân tích cú pháp TeX với bất kỳ điều gì nhưng TeX sẽ không thể tiếp cận được. –