OVH Cloud OVH Cloud

[AS] problemes d'accents

3 réponses
Avatar
julien.gautier
Bonjour,


je bute sur un problème d'accent :

je voudrais que la commande

do shell script "echo 'tétu' > ~/test.txt"

écrive bien "tétu" dans le fichier test.txt.

Or elle écrit : "t√©tu"

Quelle syntaxe utiliser (avec do shell script et echo) pour obtenir ce
résultat ?

Merci d'avance pour votre aide.

3 réponses

Avatar
Schmurtz
Julien Gautier wrote:

je voudrais que la commande

do shell script "echo 'tétu' > ~/test.txt"

écrive bien "tétu" dans le fichier test.txt.

Or elle écrit : "t√©tu"


C'est "tétu" en UTF-8, lu comme si c'était encodé en MacRoman.

--
Schmurtz

Avatar
julien.gautier
Schmurtz wrote:

Julien Gautier wrote:

je voudrais que la commande

do shell script "echo 'tétu' > ~/test.txt"

écrive bien "tétu" dans le fichier test.txt.

Or elle écrit : "t√©tu"


C'est "tétu" en UTF-8, lu comme si c'était encodé en MacRoman.



peux-tu préciser un peu ? je ne comprends pas bien le sens de ta
réponse...

veux-tu dire qu'il faut mettre des doubles quotes à la place des
simples ?


Avatar
Schmurtz
In article <1ggoprm.1hpazvkw8sgqsN%,
(Julien Gautier) wrote:

Schmurtz wrote:

Julien Gautier wrote:

je voudrais que la commande

do shell script "echo 'tétu' > ~/test.txt"

écrive bien "tétu" dans le fichier test.txt.

Or elle écrit : "t√©tu"


C'est "tétu" en UTF-8, lu comme si c'était encodé en MacRoman.


peux-tu préciser un peu ? je ne comprends pas bien le sens de ta
réponse...


Pour enregistrer des caractères, les ordinateurs utilisent un codage de
ces caractères en nombre. Le codage le plus connu est le codage ASCII
qui est devenu une norme, cependant il ne traite ni les caractères
accentués ni les caractères spéciaux.

Pour parer à ce manque, chaque système d'exploitation à développer son
propre encodage de caractères complétant le codage ASCII : Apple a
inventer le codage MacRoman et Windows le codage Windows-Latin-1. C'est
de là que vient les problèmes de transfert de fichiers en texte brut
entre windows et macos. De nombreux autre encodage on été mis à point
pour permettre de coder les caractères cyriliques, chinois, japonais,
arabe… ce qui complique encore plus la chose (surtout que chaque os à
ces variantes).

C'est là qu'arrive le système d'encodage de caractère unicode, qui
permet de coder avec un seul système tous les caractères utilisés à ce
jour (de l'ascii ou thaï en passant par les notes de musique, les
caractères mathématique, et même les caractères du braille). Plusieurs
variantes existe, celon la taille en bits minimun des caractères :
l'UTF-8 (le plus utilisé), l'UTF-16, l'UTF-32 et l'UTF-7.

MacOS X utilise souvent l'unicode pour coder les chaînes de caractères,
dont dans AppleScript ce qui fait que ton fichier de sortie contient le
mot "tétu" codé en UTF-8. Lorsque tu as vérifié, l'application que tu as
utilisé à supposé que c'était encodé en MacRoman, d'où les caractères
bizarres.

veux-tu dire qu'il faut mettre des doubles quotes à la place des
simples ?


non. En fait, si j'ai répondu un peu rapidement, c'est que je ne sais
pas comment corrigé la chose.

Vérifie que le format de fichier dans lequel tu écris tes données ne
pourrai pas par hazard être écrit en UTF-8. Ça simplifierai la chose.
Sinon il faudra traduire l'UTF-8 vers du MacRoman avec un petit
utilitaire.

Si tu ouvres le fichier de sortie avec TextEdit avec le menu ouvrir, il
y a un menu popup qui te permet de spécifier l'encodage : il faut
choisir UTF-8 pour avoir les bons caractères.

--
Schmurtz