🔥 CharMinder
A character encoding detective for text files and URLs - catch encoding issues before they evolve into problems!
CharMinder is a powerful encoding validation tool that detects character encoding issues in text files with precise, character-level reporting. It supports both local files and remote URLs (including GitHub).
✨ Features
- 🕵️ Precise Detection: Character-level reporting with exact line/column positions
- 🌐 URL Support: Works with HTTP/HTTPS URLs and GitHub blob URLs
- 🎯 Multiple Encodings: UTF-8, UTF-16, UTF-32, ASCII validation
- 📊 Detailed Reports: Unicode codepoints, context, and confidence levels
- 🔄 GitHub Integration: Automatic blob-to-raw URL conversion
- ⚡ Fast & Reliable: Built on charset_normalizer for accurate detection
🚀 Quick Start
Installation
pip install charminder
Basic Usage
# Check a local file
charminder -f myfile.txt -e UTF8
# Check a remote URL
charminder -f https://example.com/data.csv -e ASCII
# Check a GitHub file (blob URL auto-converted)
charminder -f https://github.com/user/repo/blob/main/data.json -e UTF8
📖 Usage Examples
Valid File
$ charminder -f clean_file.txt -e UTF8
✓ clean_file.txt: Valid UTF8 encoding
File with Issues
$ charminder -f problematic_file.txt -e UTF8
✗ problematic_file.txt: Invalid UTF8 encoding
• Invalid character '—' (U+2014) at line 15, column 23
Context: ...Hello — this is...
• Invalid character '©' (U+00A9) at line 20, column 5
Context: ...© 2024 Company...
🛠️ Development
CharMinder is built with:
- charset_normalizer for encoding detection
- click for the CLI interface
- urllib for URL handling
📝 License
Apache License, Version 2.0, (LICENSE)
🤝 Contributing
Contributions welcome! Please read our Contributing Guide first.
CharMinder - I choose you! 🔥⚡
Metadata
Release files for charminder 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| charminder-0.1.0.tar.gz | 46.0 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| charminder-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 58.0 kB
Release files / charminder-0.1.0.tar.gz
| Download URL | charminder-0.1.0.tar.gz |
|---|---|
| Size | 46.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
99a72b341ff3acde8c9a3d7c98f008df4e8a430f977ac2b60047883f6c0aebe9
|
|
BLAKE2b-256 checksum How to use checksums |
987005353e5ba68ec089ea032611a045435e1014a66ef737644f804dc4caf422
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.12.9
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 4, 2025.
Transparency logRelease files / charminder-0.1.0-py3-none-any.whl
| Download URL | charminder-0.1.0-py3-none-any.whl |
|---|---|
| Size | 12.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
3d88150a0bc30fd4acfbe5f38ba6048e50d1067ad45a9bf12cb915381473b023
|
|
BLAKE2b-256 checksum How to use checksums |
f7d3f812bd7b2438b66f1a8eb5edfdb6f7a4a3bdc9e11230eb780e3592acec1f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.12.9
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 4, 2025.
Transparency log