Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 18/11/2017, à 15:40

Arbiel

[Résolu] Trouver la représentation hexadécimale d'un caractère

Bonjour à tous

Pour trouver la représentation hexadécimale d'un caractère sous la forme "xx[-yy[-zz]]" je n'ai rien trouvé de plus simple que de passer par hexdump et de décoder le résultat par sed, comme indiqué ci-dessous

remi@remi-Vostro-3550:~$ function hxdp { echo -n ${1:0:1} | hexdump -C | head -1 | sed -r "s/^00000000 (( [^ ]{2})+).*/\1/" | sed -r "s/^[[:space:]]*(.*)$/\1/" | sed -e "s/ /-/g" ; }
remi@remi-Vostro-3550:~$ hxdp a
61
remi@remi-Vostro-3550:~$ hxdp é
c3-a9
remi@remi-Vostro-3550:~$ hxdp ᾦ
e1-be-a6
remi@remi-Vostro-3550:~$

Quelqu'un aurait-il quelque chose de plus simple ?

Merci d'avance

Dernière modification par Arbiel (Le 18/11/2017, à 19:03)


Arbiel Perlacremaz
LDLC Aurore NK3S-8-S4 Ubuntu 20.04
Abandon d'azerty au profit de bépo, de google au profit de Lilo et de la messagerie électronique violable au profit de Protonmail, une messagerie chiffrée de poste de travail à poste de travail.

Hors ligne

#2 Le 18/11/2017, à 16:47

bruno

Re : [Résolu] Trouver la représentation hexadécimale d'un caractère

Bonjour,

Un exemple pris dans man hexdump (pas sûr que cela simplifie beaucoup;)):

$ echo a | hexdump -v -e '/1 "%02X "'; echo
61 0A 

Sinon avec xxd :

$ echo é | xxd -p
c3a90a

ou avec od :

$ echo é | od -An -t x1
 c3 a9 0a


Il doit y avoir d'autre méthodes.

Dernière modification par bruno (Le 18/11/2017, à 16:54)

Hors ligne

#3 Le 18/11/2017, à 18:04

Arbiel

Re : [Résolu] Trouver la représentation hexadécimale d'un caractère

Bonsoir

Je te remercie. Je vais opter pour

remi@remi-Vostro-3550:~$ echo -n ᾧ | hexdump -v -e '/1 "%02x-"' | sed -r "s/(.+).$/\1/"; echo
e1-be-a7
remi@remi-Vostro-3550:~$

Arbiel


Arbiel Perlacremaz
LDLC Aurore NK3S-8-S4 Ubuntu 20.04
Abandon d'azerty au profit de bépo, de google au profit de Lilo et de la messagerie électronique violable au profit de Protonmail, une messagerie chiffrée de poste de travail à poste de travail.

Hors ligne

#4 Le 18/11/2017, à 18:33

Watael

Re : [Résolu] Trouver la représentation hexadécimale d'un caractère

salut,

$ printf '%x\n' "'a"
61

par contre :

$ printf '%x\n' "'ᾦ"
1fa6
$ printf '%x\n' "'é"
e9

hmm
?

Dernière modification par Watael (Le 18/11/2017, à 18:34)


Connected \o/
Welcome to sHell. · eval is evil.

En ligne

#5 Le 18/11/2017, à 18:47

nam1962

Re : [Résolu] Trouver la représentation hexadécimale d'un caractère

Tiens, c'est piquant comme topic :

~]$ echo -n "ᾦ" | xxd -p | gawk '{$1=$1}1' FPAT='.{2}' OFS=-
e1-be-a6

(inspiré par stackoverflow  )

Moi qui rame toujours avec sed, je trouve ça plus lisible, si on voulait un retour xxx/yyy c'est fastoche (même si ça n'a plus de signification)

~]$ echo -n "ᾦ" | xxd -p | gawk '{$1=$1}1' FPAT='.{3}' OFS=/
e1b/ea6

Dernière modification par nam1962 (Le 18/11/2017, à 18:53)


[ Modéré ]

Hors ligne

#6 Le 18/11/2017, à 18:56

Arbiel

Re : [Résolu] Trouver la représentation hexadécimale d'un caractère

Bonsoir

@Watael
Apparemment, 1fa6 est le point de code Unicode de ᾦ dont le codage en utf-8 est e1-be-a6, d'après les informations sur les caractères grecs que j'ai extraites des pages du site du consortium Unicode, et que j'ai regroupées dans un fichier

remi@remi-Vostro-3550:~$ grep ᾦ /home/.ucg/Greek-coptic-extended.fr
:ᾦ:U1FA6:e1-be-a6:omega:<dead_iota> <dead_psili> <dead_tilde>:Lettre minuscule grecque oméga esprit doux circonflexe et iota souscrit:
remi@remi-Vostro-3550:~$ 

Il en est de même pour é

https://unicode-table.com/fr/00E9/ a écrit :

Lettre minuscule latine E accent aigu U+00E9

@nam1962
En effet, la formulation avec awk est plus lisible, mais je ne le connais pas du tout. Cependant, je vais l'utiliser comme tu l'as montré.

Je passe le sujet en Résolu.

Dernière modification par Arbiel (Le 18/11/2017, à 19:02)


Arbiel Perlacremaz
LDLC Aurore NK3S-8-S4 Ubuntu 20.04
Abandon d'azerty au profit de bépo, de google au profit de Lilo et de la messagerie électronique violable au profit de Protonmail, une messagerie chiffrée de poste de travail à poste de travail.

Hors ligne

#7 Le 18/11/2017, à 18:59

nam1962

Re : [Résolu] Trouver la représentation hexadécimale d'un caractère

Là on peut aussi :

~]$ printf ᾦ | recode ..dump
UCS2   Mné   Description

1FA6         lettre minuscule grecque omga esprit doux circonflexe et iota souscrit

Dernière modification par nam1962 (Le 18/11/2017, à 19:01)


[ Modéré ]

Hors ligne

#8 Le 18/11/2017, à 19:00

pingouinux

Re : [Résolu] Trouver la représentation hexadécimale d'un caractère

Bonsoir,

Watael #4 a écrit :
$ printf '%x\n' "'ᾦ"
1fa6
$ printf '%x\n' "'é"
e9

?

En fait, tu récupères le codage Unicode des caractères.

<U1FA6>     /xe1/xbe/xa6 GREEK SMALL LETTER OMEGA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI
<U00E9>     /xc3/xa9     LATIN SMALL LETTER E WITH ACUTE

Je ne connais pas cette façon de faire : "'é"
Où peut-on trouver de la documentation sur cette façon de procéder ?

Hors ligne