Le emoticon sembrano essere specificate usando un formato di U + xxxxx in
cui ogni x è una cifra esadecimale.
Ad esempio, U + 1F615 è il codice ufficiale Unicode Consortium per la "faccia confusa" 😕
Come spesso sono confuso, ho una forte affinità per questo simbolo.
La rappresentazione U + 1F615 mi confonde perché pensavo che le uniche codifiche possibili per i caratteri unicode richiedessero 8, 16, 24 o 32 bit, mentre 5 cifre esadecimali richiedevano 5x4 = 20 bit.
Ho scoperto che questo simbolo sembra essere rappresentato da una stringa esadecimale completamente diversa in bash:
$echo -n 😕 | hexdump
0000000 f0 9f 98 95
0000004
$echo -e "\xf0\x9f\x98\x95"
😕
$PS1=$'\xf0\x9f\x98\x95 >'
😕 >
Mi sarei aspettato che U + 1F615 si convertisse in qualcosa come \ x00 \ x01 \ xF6 \ x15 .
Non vedo la relazione tra queste 2 codifiche?
Quando cerco un simbolo nell'elenco ufficiale del consorzio Unicode , vorrei poter utilizzare quel codice direttamente senza doverlo convertire manualmente in questo modo noioso. vale a dire
- trovare il simbolo su qualche pagina web
- copiandolo negli appunti del browser web
- incollandolo in bash per riecheggiare attraverso un hexdump per scoprire il codice REALE.
Posso usare questo codice a 20 bit per determinare qual è il codice a 32 bit?
Esiste una relazione tra questi 2 numeri?
\U1F615
è seguito da un'altra cifra esadecimale valida, si supporrà che faccia parte della sequenza di escape. Per farlo funzionare indipendentemente da ciò che viene seguito, deve avere abbastanza zeri\U0001F615