Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

convertir "o^" en "ô" ?

2 réponses
Avatar
unbewusst.sein
quand je demande un path au finder, via Appscript, il me donne "o^" (par
exemple) au lieu de "ô" en UTF-8 pourtant j'ai bien :
zsh-% locale
LANG="fr_FR.UTF-8"
LC_COLLATE="fr_FR.UTF-8"
LC_CTYPE="fr_FR.UTF-8"
LC_MESSAGES="fr_FR.UTF-8"
LC_MONETARY="fr_FR.UTF-8"
LC_NUMERIC="fr_FR.UTF-8"
LC_TIME="fr_FR.UTF-8"
LC_ALL=


donc comment convertir les trucs genre "o^" en "ô" ?
ça doit être un truc built-in, les "o^" c'est une sorte d'asscii étendu
?

--
« L'ennemi, c'est comme le sexe.
Faut tirer dessus de temps en temps pour avoir la paix. »
(Pierre Desproges)

2 réponses

Avatar
Erwan David
(Une Bévue) écrivait :

quand je demande un path au finder, via Appscript, il me donne "o^" (par
exemple) au lieu de "ô" en UTF-8 pourtant j'ai bien :
zsh-% locale
LANG="fr_FR.UTF-8"
LC_COLLATE="fr_FR.UTF-8"
LC_CTYPE="fr_FR.UTF-8"
LC_MESSAGES="fr_FR.UTF-8"
LC_MONETARY="fr_FR.UTF-8"
LC_NUMERIC="fr_FR.UTF-8"
LC_TIME="fr_FR.UTF-8"
LC_ALL >

donc comment convertir les trucs genre "o^" en "ô" ?
ça doit être un truc built-in, les "o^" c'est une sorte d'asscii étendu
?



Non c'est de l'unicode en forme normale dissociée

En fait pour un caractère accentué, en unicode il y a un choix à faire:
- soit on utilise un caractère unicode représentant la lettre accentuée
(NFC ou forme normale composée)
- soit on utilise 2 caractères : la lettre de base + un caractère
représentant l'accent. (forme normale décomposée).

Apple utilise la deuxième forme. Le ^ que vous lisez est en fait un ^
sans largeur, destiné à se mettre sur le caractère précédent. (et Apple
est le seul à le faire, car les protocoles internet ont choisi la forme
normale composée, donc la plupart des outils unix attendent la NFC).

Cf http://www.unicode.org/reports/tr15/ parceque j'ai énormément
simplifié...


--
Le travail n'est pas une bonne chose. Si ça l'était,
les riches l'auraient accaparé
Avatar
unbewusst.sein
Erwan David wrote:

Non c'est de l'unicode en forme normale dissociée



OK, il y a maintenant "l'UTF-8Mac"...

En fait pour un caractère accentué, en unicode il y a un choix à faire:
- soit on utilise un caractère unicode représentant la lettre accentuée
(NFC ou forme normale composée)
- soit on utilise 2 caractères : la lettre de base + un caractère
représentant l'accent. (forme normale décomposée).

Apple utilise la deuxième forme. Le ^ que vous lisez est en fait un ^
sans largeur, destiné à se mettre sur le caractère précédent. (et Apple
est le seul à le faire, car les protocoles internet ont choisi la forme
normale composée, donc la plupart des outils unix attendent la NFC).



ben, du coup, quand je rentre un caractère accentué à la NFC, le
terminal mes ort des trucs bizarres genre :
zsh-% cd /Users/yt/dev/Appscript/do<0302>ssier sans ti<0302>tre
ôîôîôîôîôîôîôîôî%
mais le cd résultant est OK et même dans une ligne où il n'y a pas
(plus) d'accent j'ai tjs des trucs bizarres :

zsh-% echo $LANG
fr_FR.UTF-8
ôîôîôî%
zsh-%

et quand je met dans un fichier ces caractères dissociés, TextEdit
m'affiche autre chose, il s'y perd sans doute.


Je viens de lire la page :
<http://pierre.albarede.free.fr/technique/Unix.html&gt;
où il est conseillé :
« Avec Mac OS X.6, Preferences, Encodings, Character Set Encoding,
activer uniquement UTF-8. Ouvrir l'inspecteur (touche commande I),
Advanced, Character Encoding, UTF-8 doit être le seul choix (cocher «
Set locale environment variables on startup » affecte la variable
d'environnement LANG, voir le bouton d'aide). ls -v semble inutile.
Voir la rubrique dans l'aide « Displaying high-bit characters ». »

je n'ai pas trouvé cette pref "Encodings, Character Set Encoding" ...
je suis sous SL 10.6.3 (?).
Cf http://www.unicode.org/reports/tr15/ parceque j'ai énormément
simplifié...



au moins, c'est pédagogique...

--
« L'ennemi, c'est comme le sexe.
Faut tirer dessus de temps en temps pour avoir la paix. »
(Pierre Desproges)