@@ -16,6 +16,18 @@ def open_utf8(filename, mode):
1616 def open_utf8 (filename , mode ):
1717 return open (filename , mode , encoding = 'utf-8' )
1818
19+ def safe_stdout_write (text ):
20+ """Write text to stdout with proper encoding handling."""
21+ try :
22+ sys .stdout .write (text )
23+ except UnicodeEncodeError :
24+ # Fallback: encode to UTF-8 and write to stdout.buffer (Python 3) or sys.stdout (Python 2)
25+ if sys .version_info [0 ] >= 3 and hasattr (sys .stdout , 'buffer' ):
26+ sys .stdout .buffer .write (text .encode ('utf-8' ))
27+ else :
28+ # Python 2.7 or no buffer attribute - write UTF-8 encoded bytes
29+ sys .stdout .write (text .encode ('utf-8' ))
30+
1931
2032if sys .version_info >= (3 , 8 ):
2133 from importlib import metadata
@@ -65,7 +77,7 @@ def main():
6577 with open_utf8 (args .output , 'w' ) as f :
6678 f .write (minified )
6779 else :
68- sys . stdout . write (minified )
80+ safe_stdout_write (minified )
6981
7082 else :
7183 # minify source paths
@@ -85,7 +97,7 @@ def main():
8597 with open_utf8 (args .output , 'w' ) as f :
8698 f .write (minified )
8799 else :
88- sys . stdout . write (minified )
100+ safe_stdout_write (minified )
89101
90102
91103def parse_args ():
0 commit comments