skillfed

win_unicode_console

Enable Unicode input and display when running Python from Windows console.

win-unicode-console v0.5 493.2K downloads/30d#6,357 on PyPI103
Permissive license MIT Abandoned released

What it is and what it does

win-unicode-console patches Python's standard input/output streams on Windows to handle Unicode correctly. The Windows console has fundamental limitations: sys.stdin, sys.stdout, and sys.stderr cannot natively read or display Unicode characters through normal Python I/O. This package replaces those streams with custom implementations that use Windows API functions (ReadConsoleW and WriteConsoleW) to communicate with the console in UTF-16-LE, then transcodes to UTF-8 for Python's tokenizer. It also installs a custom readline hook to fix interactive input and, on Python 2, monkeypatches raw_input and sys.argv to handle Unicode.

The package is designed as an external patch—a user-level fix rather than something application developers should bundle as a dependency. Once enabled via win_unicode_console.enable(), Unicode characters can be printed and entered normally. However, the package is abandoned (last release 2016-06-25, last commit 2021-01-04) and targets only Python 2.7 and 3.4–3.5, making it unsuitable for modern Python environments.

Use it for:

  • Running legacy Python 2 scripts on Windows that need to accept or display Unicode input from the console.
  • Interactive Python REPL sessions on Windows where you need to enter or see non-ASCII characters.
  • Debugging or testing Python code that processes Unicode on a Windows machine with older Python versions.
  • Standalone Windows console applications written in Python 2 that require international character support.

Worth the install?

AI-flagged interpretation of the facts on this page — verify before relying

Fixes Unicode input and display in Python when running from the Windows console by replacing standard streams and input handling with WinAPI-based alternatives.

No. The package is abandoned (last release 2016-06-25) and targets only Python 2.7 and 3.4–3.5, all of which are end-of-life. Modern Python has significantly improved Unicode handling on Windows. If you are on a supported Python version, the standard streams should work correctly; if you are on Python 2 or early versions, you should upgrade rather than apply this patch. Install only if you are stuck maintaining legacy code on an unsupported Python version and have no path to upgrade.

Install

win-unicode-console on PyPI

pip

pip install win-unicode-console

uv

uv add win-unicode-console

poetry

poetry add win-unicode-console

Installing win_unicode_console

Before you install

High install friction: distributed as a .zip archive requiring manual extraction or pip install from archive. Package is abandoned—last release was 2016-06-25, last commit 2021-01-04, and no maintenance activity since. Targets Python 2.7 and Python 3.4–3.5, which are no longer supported.

License in practice

MIT license is permissive and imposes no restrictions on use or redistribution, but the package's abandonment means no legal recourse for issues.

Quickstart

pip install win-unicode-console

import win_unicode_console
win_unicode_console.enable()
print("α")  # Unicode now displays correctly

Windows only; Python 2.7 or Python 3.4–3.5 (older Python versions only).

Verify before relying

  • Whether the package works with Python versions released after 3.5.
  • Whether the WinAPI approach remains effective on modern Windows console implementations.
  • Whether the package's fixes are still necessary given Python's improved Unicode handling in recent versions.

Package facts

License MIT (permissive)
Python support not specified
Install friction high — source build required
Runtime dependencies none
Maintenance abandoned — 3,702 days since the last release
Last repo commit
First released
Downloads 493,187/month — #6,357 on PyPI (30-day window, as of 2026-08-14)
Known vulnerabilities none known (OSV.dev, checked 2026-08-14)

Evidence: win_unicode_console-0.5.zip

Keywords: Windows, Unicode, console

Development Status :: 4 - BetaEnvironment :: ConsoleIntended Audience :: DevelopersLicense :: OSI Approved :: MIT LicenseOperating System :: Microsoft :: WindowsProgramming Language :: Python :: 2Programming Language :: Python :: 2.7Programming Language :: Python :: 3Programming Language :: Python :: 3.4Programming Language :: Python :: 3.5

Tags

windows console unicode inputpython windows unicode displayfix unicode windows terminalwindows console encoding pythonunicode stdin stdout windows
windows-onlyend-of-life

More Utilities packages