fix: handle UnicodeEncodeError on Windows with gbk console encoding #4767
+7
−1
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
Fixes #4765
On Windows with non-UTF8 console encodings (e.g.,
gbkfor Chinese locale), Rich'sconsole.print()can fail when printing Unicode characters like bullet points (•/ U+2022) that aren't supported by the encoding.Root Cause
The error occurs at
mdstream.pyline 207 whenconsole.print(show)tries to output markdown content containing Unicode characters that can't be encoded with the console's encoding (gbk).Fix
Added try/except around
console.print()to catchUnicodeEncodeErrorand fall back to ASCII-safe text by replacing problematic characters with?.This ensures the application doesn't crash on Windows systems with non-UTF8 console encodings while still displaying readable output.