@@ -50,6 +50,12 @@ def write_py(name, code):
50
50
print ('Code wrote to: %s' % fpath )
51
51
return fpath
52
52
53
+ def decode (s ):
54
+ try :
55
+ return s .decode ('utf-8' )
56
+ except UnicodeDecodeError :
57
+ return s .decode ('gbk' )
58
+
53
59
def application (environ , start_response ):
54
60
host = environ .get ('HTTP_HOST' )
55
61
method = environ .get ('REQUEST_METHOD' )
@@ -86,9 +92,9 @@ def application(environ, start_response):
86
92
try :
87
93
fpath = write_py (name , code )
88
94
print ('Execute: %s %s' % (EXEC , fpath ))
89
- r ['output' ] = subprocess .check_output ([EXEC , fpath ], stderr = subprocess .STDOUT , timeout = 5 ). decode ( 'utf-8' )
95
+ r ['output' ] = decode ( subprocess .check_output ([EXEC , fpath ], stderr = subprocess .STDOUT , timeout = 5 ))
90
96
except subprocess .CalledProcessError as e :
91
- r = dict (error = 'Exception' , output = e .output . decode ( 'utf-8' ))
97
+ r = dict (error = 'Exception' , output = decode ( e .output ))
92
98
except subprocess .TimeoutExpired as e :
93
99
r = dict (error = 'Timeout' , output = '执行超时' )
94
100
except subprocess .CalledProcessError as e :
0 commit comments