From 6152f7126d87ab863f566505f87942b1d33b7054 Mon Sep 17 00:00:00 2001 From: urinx <1336006643@qq.com> Date: Tue, 16 Feb 2016 11:53:41 +0800 Subject: [PATCH] Bugfix: win cmd stdout encoding bug - [thanks to @sharpdeep] --- weixin.py | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/weixin.py b/weixin.py index 881e9b9..456d955 100755 --- a/weixin.py +++ b/weixin.py @@ -554,6 +554,22 @@ class WebWeixin(object): if pm: return pm.group(1) return '未知' +class UnicodeStreamFilter: + def __init__(self, target): + self.target = target + self.encoding = 'utf-8' + self.errors = 'replace' + self.encode_to = self.target.encoding + + def write(self, s): + if type(s) == str: + s = s.decode('utf-8') + s = s.encode(self.encode_to, self.errors).decode(self.encode_to) + self.target.write(s) + if __name__ == '__main__': + if sys.stdout.encoding == 'cp936': + sys.stdout = UnicodeStreamFilter(sys.stdout) + webwx = WebWeixin() webwx.start()