uniname(1)
π uniname β the vibe check for every character in your Unicode file π
okay so bestie, welcome to uniname(1), a General Commands Manual moment. this is the little tool that β¨*names*β¨ the characters in a Unicode text file. like, it looks at your text and goes "oh i know her" about every single character. no cap.
πΈ SYNOPSIS πΈ
uniname ([option flags]) (<file name>)
and if you don't hand her a file name? she just reads from the standard input. lowkey flexible of her π«Ά
β¨ DESCRIPTION β¨
so here's the tea. uniname names the characters in a Unicode text file. for every character, by default she prints:
- the character offset
- the byte offset
- the hexadecimal UTF-32 character code
- the encoding, as a sequence of hex byte values
- the glyph
- and the character's Unicode name π
and because she's not a gatekeeper, the command line flags let you suppress any of that info you don't wanna see. main character energy = letting you customize your own view.
now, glyphs that do not display nicely β control characters, spaces, that whole situation β are not displayed. it's giving "we don't show that here." but plot twist: for the Latin-1 control characters, whose official Unicode name is control, the real name is given instead. iconic behavior honestly.
character and byte offsets both start from 0. periodt.
when a character doesn't have a unique Unicode name β which happens with Chinese characters, for example β the character gets identified as character in such-and-such a range. cute, right? but wait, there's more: if the character is a Chinese character listed in Nelson's dictionary, then the Nelson number is supplied. she really said "i know a guy" π§
by default, input is expected to be UTF-8. native order UTF-32 may be specified via the command line flag. if invalid UTF8 is encountered, an explanation is printed as to why it is invalid β she's not just gonna say "no," she's gonna tell you what went wrong. π
and except when in validation mode, surrogate codepoints are reported like proper characters, even though UTF-8 containing surrogates is technically invalid. (yes bestie, that's a whole thing.) and the flag for native order UTF-32? it's -q. π
π COMMAND LINE FLAGS π
one bullet per flag, all of them, no skipping, we are thorough in this house:
-Aβ skip ASCII whitespace characters. bye whitespace π¦-aβ skip ASCII characters. all of them. gone.-Bβ skip characters within the Basic Multilingual Plane.-bβ suppress printing of byte offset.-cβ suppress printing of character offset.-eβ suppress printing of encoding.-gβ suppress printing of glyph.-hβ print usage information. your little help me help you moment.-lβ print line number.-nβ suppress printing of Unicode name.-pβ suppress printing of headers every screenfull.-qβ input is native order UTF-32. π-rβ print Unicode range. the ranges reported include both official Unicode ranges and the constructed language ranges within the Private Use Areas registered with the Conscript Unicode Registry (http://www.evertype.com/standards/csur/). very niche, very slay.-s <character offset>β skip to specified character offset.-S <byte offset>β skip to specified byte offset. π okay listen up, this one has lore: note that even if the file consists of well-formed Unicode there is no guarantee that the byte sequence beginning at an arbitrary byte will be valid Unicode. this option is provided for use where other programs generate only byte offsets or where it is necessary to skip over damaged Unicode. in most circumstances use of a character offset will be more appropriate. and if a byte offset is used, the character offsets shown are with respect to the beginning of the section of the file examined rather than the beginning of the file. fr fr, read that twice.-uβ suppress printing of UTF32 code.-Vβ validate the input. in this case, nothing is done other than determine whether the input is valid UTF-8 Unicode. if it is, no output is produced and the program exits with status 0. if invalid UTF-8 is encountered, the program reports the location of the first invalid UTF-8 encountered, explains why it is invalid, and exits with status 1. for purposes of validation, surrogate codepoints are considered invalid as per the Unicode standard. π₯-vβ print version information.
π SEE ALSO π
unidesc
π REFERENCES π
- Unicode Standard, version 5.1
π«Ά AUTHOR π«Ά
Bill Poser billposer@alum.mit.edu
π LICENSE π
GNU General Public License
heads up bestie: -S is the risky one. arbitrary byte offsets + possibly damaged Unicode = proceed with intention, not with vibes. the manpage said it, i'm just repeating it louder. π¨
and that's the whole page, diva. this one's from June, 2009 β a little vintage, a lot iconic β brought to you by the General Commands Manual, and yes she's still serving uniname(1) after all these years. go name some characters. mwah π
β¨
π¦ where this page comes from
- debian trixie: uniutils 2.28-2
- ubuntu questing: uniutils 2.28-2
- ubuntu resolute: uniutils 2.28-2build1
- ubuntu stonking: uniutils 2.28-2build1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms