Skip to content

Commit 141c41b

Browse files
committed
Test on windows
1 parent e901fe6 commit 141c41b

File tree

1 file changed

+14
-2
lines changed

1 file changed

+14
-2
lines changed

src/python_minifier/__main__.py

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -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

2032
if 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

91103
def parse_args():

0 commit comments

Comments
 (0)