{{Header}}
{{title|title=
unicode-show
}}
{{#seo:
|description=Detect and annotate non-ASCII or suspicious Unicode characters in files
}}
{{intro|
Detect and annotate non-ASCII or suspicious Unicode characters in text or files.
}}
== SYNOPSIS ==
unicode-show [FILE]...
== DESCRIPTION ==
unicode-show
is a utility that reads text input (from standard input or files) and highlights suspicious Unicode characters, such as those outside the safe ASCII range. This tool is useful for identifying potentially malicious or misleading Unicode characters in source code, logs, or user input.
'''For each suspicious character, unicode-show
prints:'''
* The line it appears on, annotated with [U+XXXX]
markers
* A description including the character (if visible), Unicode codepoint, character name, and category
'''What is considered suspicious:'''
* Characters outside the printable ASCII range (0x20
–0x7E
)
* Control characters (excluding \n
, \r
, \t
)
* Any character not in the standard set of ASCII letters, digits, punctuation, and trailing whitespace
'''Output formatting:'''
* Annotations are colorized using ANSI escape codes if stdout is a terminal and the environment is color-friendly
* Red for inline [U+XXXX]
markers
* Cyan for character metadata descriptions
== COLOR OUTPUT DISABLED IF ==
* The environment variable NOCOLOR
is set
* TERM
is set to dumb
* Output is redirected (non-interactive terminal)
== OPTIONS ==
This tool takes no options. Any arguments are treated as file paths. If no arguments are given, input is read from standard input.
== EXIT STATUS ==
* 0
No suspicious Unicode characters found
* 1
Suspicious characters were detected
* 2
An error occurred (e.g., file I/O or decoding failure)
== EXAMPLES ==
'''Scan a file for suspicious characters:'''
{{CodeSelect|code=
unicode-show suspicious.txt
}}
'''Scan multiple files:'''
{{CodeSelect|code=
unicode-show file1.txt file2.md
}}
'''Scan input from a pipeline:'''
{{CodeSelect|code=
cat file1.txt | unicode-show
}}
'''Disable color output:'''
{{CodeSelect|code=
NOCOLOR=1 unicode-show example.txt
}}
== ENVIRONMENT ==
* NOCOLOR
- disables color output if set
* TERM
- if set to dumb
, disables color output
{{Footer}}
[[Category: Documentation]]