charset-normalizer
The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet.
Install
charset-normalizer on PyPI
pip
pip install charset-normalizeruv
uv add charset-normalizerpoetry
poetry add charset-normalizerPackage facts
| License | MIT (permissive) |
| Python support | supports the current Python release (>=3.7) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | none |
| Maintenance | actively maintained — 1 days since the last release |
| Last repo commit | |
| First released | |
| Popularity | one of the 100 most-downloaded packages on PyPI (30-day window, as of 2026-08-13) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-13) |
Evidence: charset_normalizer-3.5.0-py3-none-any.whl
Keywords: encoding, charset, charset-detector, detector, normalization, unicode, chardet, detect
About charset-normalizer
from the package's own PyPI description — quoted content, verbatim
<h1 align="center">Charset Detection, for Everyone 👋</h1>
<p align="center"> <sup>The Real First Universal Charset Detector</sup><br> <a href="https://pypi.org/project/charset-normalizer"> <img src="https://img.shields.io/pypi/pyversions/charset_normalizer.svg?orange=blue" /> </a> <a href="https://pepy.tech/project/charset-normalizer/"> <img alt="Download Count Total" src="https://static.pepy.tech/badge/charset-normalizer/month" /> </a> <a href="https://bestpractices.coreinfrastructure.org/projects/7297"> <img src="https://bestpractices.coreinfrastructure.org/projects/7297/badge"> </a> </p> <p align="center"> <sup><i>Featured Packages</i></sup><br> <a href="https://github.com/jawah/niquests"> <img alt="Static Badge" src="https://img.shields.io/badge/Niquests-Most_Advanced_HTTP_Client-cyan"> </a> <a href="https://github.com/jawah/wassima"> <img alt="Static Badge" src="https://img.shields.io/badge/Wassima-Certifi_Replacement-cyan"> </a> </p> <p align="center"> <sup><i>In other language (unofficial port - by the community)</i></sup><br> <a href="https://github.com/nickspring/charset-normalizer-rs"> <img alt="Static Badge"...
AI interpretation — verify before relying
AI-generated interpretation of the package facts above; every digit, version, license, or vulnerability id it cites is grounded in the facts already shown on this page
Detects and normalizes text encoding from unknown or ambiguous sources, supporting 99 IANA character sets with a universal approach that handles edge cases safely.
Actively maintained with a release just 1 day old and no runtime dependencies, making installation frictionless. Supports Python 3.7–3.15 and PyPy.
MIT license permits commercial and private use with minimal restrictions; you must include a copy of the license and copyright notice.
Usage
pip install charset-normalizer==3.5.0
from charset_normalizer import from_bytes
result = from_bytes(b'\xc3\xa9').best()
print(result.encoding, result.output)
Verdict: A top-100 PyPI package offering fast, reliable charset detection across 99 encodings with zero dependencies, active maintenance, and a permissive MIT license. No known vulnerabilities and strong Python version coverage make it a production-ready alternative to Chardet.
Needs verification
- Whether the 98% accuracy claim in the description excerpt reflects current performance on real-world data.
- Details on the custom codec registration feature and its practical use cases.
Similar packages
permissive · top 1,000 on PyPI
shellinghampermissive · top 1,000 on PyPI
idpermissive · top 1,000 on PyPI
requests-filepermissive · top 1,000 on PyPI
openlineage-pythonpermissive · top 1,000 on PyPI
webencodingspermissive · top 1,000 on PyPI
PyMySQLpermissive · top 1,000 on PyPI
html5libpermissive · top 1,000 on PyPI
curl-cffipermissive · top 1,000 on PyPI
larkpermissive · top 1,000 on PyPI