Back to Explore

jawah/charset_normalizer

GitHub
2 updates · last 90 days1 watchersOpen source

Last release:

Charset Normalizer is a pure Python library for detecting the character encoding of text with unknown encodings, based on IANA codec support. It also helps you read and decode text safely, and it can register custom codecs to extend supported encodings. Useful as an alternative to Chardet when you need charset detection in Python.

Project status

  • Actively maintained, with an upstream push today (2026-07-19) and follow-up updates through recent version bumps (3.4.7 to 3.4.9).
  • Update cadence appears moderate-to-active recently, 3.4.8 on 2026-07-06 and 3.4.9 on 2026-07-07, followed by a longer gap back to 3.4.7 on 2026-04-02.

AI summary generated

AI-generated from public sources. May be inaccurate. Report

Recent updates

  • 3.4.9

    Version 3.4.9 is a maintenance release that claims to fix a regression in the fallback path that could lead to a decode error, and notes that 3.4.8 was yanked as a result. The code diff shows targeted changes in the from_bytes fallback machinery to ensure problematic payloads do not produce a failing decode during best-match selection.

  • 3.4.8

    Version 3.4.8 is presented as a performance and memory-focused release, with fixes for import time, runtime overhead, and a noise-detection behavior issue. The code changes also substantially refactor internal character classification, caching, and multibyte codec probing logic.

  • 3.4.7

    This release (3.4.7) focuses on fixing how UTF-7 SIG/BOM remnants are removed from decoded output. It also updates build tooling (mypy[c]) and relaxes the setuptools version constraint for packaging builds.

  • 3.4.6

    Version 3.4.6 focuses on performance improvements to charset detection, including a refactor of the detection pipeline and multiple hot-path optimizations. It also ships Unicode range data updates (Unicode v17 blocks) and includes the documented CLI fix for `--normalize` writing outputs to the wrong path when normalizing multiple files.

  • 3.4.5

    Version 3.4.5 focuses on build and detector improvements, including constraint updates for setuptools and mypyc, plus several bug fixes. It also includes internal micro-optimizations across the noise and language detectors, and a CLI behavior cleanup for query_yes_no. The release notes warn that mypyc optimized wheel binaries changed compared to previous versions.

  • 3.4.4

    Version 3.4.4 updates the package version and tightens the build toolchain, specifically constraining the setuptools version used for builds and raising the mypyc-related compiler upper bound. It also adds CI-related dependency files for hash pinning and expands the prebuilt wheel coverage to additional architectures.

    SecurityFeatures
  • 3.4.3

    Version 3.4.3 updates charset-normalizer's detection behavior by adjusting legacy detect confidence for small byte samples and improving fallback handling for UTF-16 and UTF-32. It also updates the packaging/build pipeline to make mypyc optional at build time and adds Python 3.14 support, with SBOM generation during release publishing.

    Features
  • 3.4.2

    Version 3.4.2 focuses on fixing a CLI deprecation warning around argparse.FileType and improving the detector's reliability for CJK text. The patch also updates build tooling (mypy upper bound, optional mypyc) and refreshes CI workflow dependencies.

  • 3.4.1

    Version 3.4.1 focuses on build and developer workflow changes (switching metadata to pyproject.toml, adding pre-commit and nox), plus typing-related refactors (enforced postponed annotation evaluation) and a couple of Unicode conversion fixes. The code diff also includes several runtime-relevant adjustments around exception handling and CLI messaging that are not called out in the release notes.

    BreakingFeatures
  • 3.4.0

    charset-normalizer 3.4.0 introduces a CLI option, --no-preemptive, and adds test coverage for preemptive charset header replacement plus Python 3.13 support. The core detection logic also changes to improve reliability, including early stopping behavior and updated language model heuristics. Additionally, several developer and CI build configuration items were updated.

    Features