Python控制台输出上标及检测Shell UTF-8支持的方法咨询
Fixing Superscript Display Issues & UTF-8 Terminal Support in Python 3.5 (Windows 10 32-bit)
Hey there! Let's break down your problems and walk through practical, actionable solutions for each one.
1. Fixing Incomplete Superscript Number Display
The reason only superscript 0 and 2 show up correctly boils down to limited Unicode support in the default Windows Command Prompt (cmd) and its default font. Older cmd versions don’t handle all Unicode superscript glyphs well—especially ¹, ³-⁹, which often aren’t included in basic system fonts like "Raster Fonts".
Here are three fixes you can try right away:
- Switch to a better terminal: Use Windows Terminal (even with Python 3.5) or PowerShell. Both have far better Unicode support out of the box, so all superscripts will render correctly without extra tweaks.
- Change cmd’s font: Right-click the cmd title bar → Properties → Font tab. Pick a font like Consolas or Segoe UI Symbol—these include full sets of Unicode superscript glyphs. Apply the change and restart your cmd session.
- Use explicit Unicode escape sequences: If you must stick with cmd, print using Unicode escapes instead of direct characters. For example:
Each escape corresponds to a specific superscript: ⁰ (\u2070), ¹ (\u00b9), ² (\u00b2), ³ (\u00b3), and ⁴-⁹ use \u2074 to \u2079.# Maps to ⁰¹²³⁴⁵⁶⁷⁸⁹ with correct Unicode codes print("\u2070\u00b9\u00b2\u00b3\u2074\u2075\u2076\u2077\u2078\u2079")
2. Detecting & Ensuring UTF-8 Support in Your Shell
How to check if your shell supports UTF-8
You can verify this directly from Python with two quick checks:
- Check the terminal encoding:
If the output isimport sys print("Current terminal encoding:", sys.stdout.encoding)utf-8orcp65001(Windows’ UTF-8 code page), your shell supports UTF-8. - Test with a UTF-8 character: Print a non-ASCII Unicode character (like an emoji) and see if it renders properly:
If it shows up correctly, your shell is UTF-8 compatible.print("Test UTF-8 character: 😀")
How to guarantee UTF-8 support
- Switch cmd to UTF-8 automatically: Add this line at the start of your script to switch the cmd code page to UTF-8 (suppressing the output with
> nul):import os os.system('chcp 65001 > nul') - Use a UTF-8-friendly terminal: Windows Terminal and PowerShell default to UTF-8 support, so you won’t need extra code page changes here.
- Stick with Unicode-friendly fonts: Ensure your terminal uses a font that supports UTF-8 glyphs (Consolas, Segoe UI Symbol, or any modern system font).
内容的提问来源于stack exchange,提问作者Melvin Abraham
相关产品推荐
相关产品推荐

