Skip to main content

A simple tool to check if Unicode text files are Unicode-normalized

Project description

Unicodecheck

A simple tool to check if Unicode text files are Unicode-normalized

Install

pip install unicodecheck

Usage

Quickstart

unicodecheck -iv SPAM.txt

To check files in a directory recursively:

unicodecheck -ivr Ham/Eggs/

Synopsis

The main program can be invoked either through the unicodecheck command or through the Python main module option python3 -m unicodecheck.

usage: unicodecheck [-h] [-V] [-m {NFC,NFD,NFKC,NFKD}] [-d] [-u [NUMBER]] [-r]
                    [-i] [-b PATTERN [PATTERN ...]] [-e] [-v]
                    PATH [PATH ...]

Options

positional arguments:
  PATH                  specify an input file or directory (pass '-' to specify stdin)

options:
  -h, --help            show this help message and exit
  -V, --version         show program's version number and exit
  -m, --mode {NFC,NFD,NFKC,NFKD}
                        target Unicode normalization (default: NFC)
  -d, --diff            show diffs between the original and normalized
                        (default: False)
  -u, -U, --unified [NUMBER]
                        show unified diffs with NUMBER lines of context
                        [NUMBER=3] (default: False)
  -r, --recursive       follow the directory tree rooted in each PATH argument
                        (default: False)
  -i, --include-hidden  include hidden files and directories (default: False)
  -b, --blacklist PATTERN [PATTERN ...]
                        notify if it contains PATTERN (case-sensitive)
                        (default: None)
  -e, --error           return non-zero exit code on detection (default: False)
  -v, --verbose         report non-essential logs (default: False)

Tips

Check whether filenames are normalized

The convmv command is a good alternative to using this application.

NFC

convmv -f utf8 -t utf8 --nfc -r ./

NFD

convmv -f utf8 -t utf8 --nfd -r ./

Notes

  • This tool doesn't provide auto in-place (write) file normalization because Unicode normalization doesn't guarantee content equivalence.
  • The procedure for determining binary files is based on Git's algorithm.

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

unicodecheck-1.2.7.tar.gz (8.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

unicodecheck-1.2.7-py3-none-any.whl (8.7 kB view details)

Uploaded Python 3

File details

Details for the file unicodecheck-1.2.7.tar.gz.

File metadata

  • Download URL: unicodecheck-1.2.7.tar.gz
  • Upload date:
  • Size: 8.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.6

File hashes

Hashes for unicodecheck-1.2.7.tar.gz
Algorithm Hash digest
SHA256 5827e2e6af9dd591ca7e50cbba00548cd9877cde13cfa17cde48a0fa43949675
MD5 3692d8084c8546f0b109cc89131de22b
BLAKE2b-256 ec6bb78be33240c0645a39f0db7c8ba1c3bd16d69af821bf2e5a3db5d6ecdf72

See more details on using hashes here.

File details

Details for the file unicodecheck-1.2.7-py3-none-any.whl.

File metadata

  • Download URL: unicodecheck-1.2.7-py3-none-any.whl
  • Upload date:
  • Size: 8.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.6

File hashes

Hashes for unicodecheck-1.2.7-py3-none-any.whl
Algorithm Hash digest
SHA256 b06427237535229d3b522ca6455683a2ac1d2a2ec5fb283a0cb641b8449daecc
MD5 5c39ae5185d3d085b56d820fe2e08162
BLAKE2b-256 5f81541b0d8d760798f0c0fb9454eaad981a3e9c17d4f4778d6628a73b65eef7

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page