Un amico ha incollato un comando in una chat room di Slack che conteneva il personaggio *
. Sembra normale *
ma non lo è:
$ uniprops '*'
uniprops: no character named ‹*›
Se corro uniprops
sull'asterisco quando scrivo sulla mia macchina, ottengo:
$ uniprops '*'
U+002A ‹*› \N{ASTERISK}
\pP \p{Po}
All Any ASCII Assigned Basic_Latin Punct Is_Punctuation Common Zyyy Po P
Gr_Base Grapheme_Base Graph X_POSIX_Graph GrBase Other_Punctuation
Pat_Syn Pattern_Syntax PatSyn POSIX_Graph POSIX_Print POSIX_Punct Print
X_POSIX_Print Punctuation Unicode X_POSIX_Punct
Posso anche vedere che non è un vero asterisco passando attraverso od
:
$ printf '*' | od -c
0000000 * 342 200 213
0000004
Mentre quello normale dà:
$ printf '*' | od -c
0000000 *
0000001
Ecco il personaggio misterioso un po 'più grande:
*
E l'asterisco normale (sì, sembrano identici):
*
Quindi, uniprops
non so cosa sia e non riesco a trovarlo su http://www.fileformat.info/ . So che l'amico che l'ha incollato è su OS X (io sono su Linux) e che funziona sul loro sistema come un normale asterisco. Suppongo che Slack l'abbia in qualche modo cambiato. Quindi, qualcuno ha idea di cosa sia quel personaggio?
Nota che non puoi copiare lo strano personaggio direttamente dalla domanda. Apparentemente, il motore Stack Exchange rimuove i caratteri non stampabili finali. Fai clic sul link "modifica" e copia da lì invece.
uniprops
è un piccolo script pulito incluso nel Unicode::Tussle
modulo Perl che identifica e stampa informazioni sul personaggio che gli dai.
urxvt
, è già visualizzato come *<200b>
.
'*\u200b'
)
ord("*")
per la stringa incollata e la*
chiave nativa e ho ottenuto lo stesso numero per entrambi (42).