2011-06-18 31 views
11

Hãy nói rằng bạn muốn bắt đầu một kịch bản python với một số thông số nhưLàm thế nào để bạn có được mã hóa của thiết bị đầu cuối từ bên trong một kịch bản python?

python myscript some arguments 

Tôi hiểu, rằng chuỗi sys.argv[1]sys.argv[2] sẽ có mã hóa theo quy định tại các thiết bị đầu cuối. Có cách nào để lấy thông tin này từ bên trong kịch bản lệnh python không?

Mục tiêu của tôi là một cái gì đó như thế này:

terminal_enocding = some_way.to.GET_TERMINAL_ENCODING 
some = `sys.argv[1]`.decode(terminal_encoding) 
arguments = `sys.argv[2]`.decode(terminal_encoding) 

Trả lời

18

sys.stdout.encoding sẽ cung cấp cho bạn mã hóa đầu ra tiêu chuẩn. sys.stdin.encoding sẽ cung cấp cho bạn sự vi phạm cho đầu vào tiêu chuẩn.

6

Bạn có thể gọi locale.getdefaultlocale() và sử dụng phần thứ hai của tuple.

Xem thêm here (entry wiki Fedora giải thích lý do tại sao và làm thế nào là của mã hóa mặc định trong Python)

Các vấn đề liên quan