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

comment spécifier l'encodage ?

2 réponses
Avatar
yvon.thoravallist
j'utilise java à travers javascript et j'ai un pb d'encodage caractère.

Quand je cherche à enregistrer un fichier, l'enregistrement se passe
très bien s'il n'y a pas de caractères accentués, s'il y en a, ne
serait-ce qu'un seul (é), l'enregistrement est vide.

Ce problème existe aussi bien pour l'UTF-8 que l'ISO-8859-1.

Je sais qu'il existe un moyen en java de spécifier la nature de
l'encodage d'une string mais n'en connait pas la sybtaxe, qu'elle
est-elle ?

Je précise que je suis sous MacOS X.2.6 java 1.4.1...

--
Yvon

2 réponses

Avatar
Xavier Tarrago
L'encodage est une manière de convertir un flot de bytes en tableau de
caractères unicode (2 octets).
Les caractères en mémoire sont toujours en unicode, il n'y a donc pas
d'encodage associé à une String.
A la lecture ou l'écriture, on spécifie l'encodage dans l'objet qui fait la
conversion Stream <-> Character, c'est-à-dire OutputStreamWriter et
InputStreamWriter. On peut fixer l'encoding à la construction
Writer w = new OutputStreamWriter( new FileOutputStream("fichier"),
"ISO-8859-1");
(non testé, peut-être approximatif)

"Yvon Thoraval" a écrit dans
le message de
news:1g1h5te.1nqj305i32l34N%
j'utilise java à travers javascript et j'ai un pb d'encodage caractère.

Quand je cherche à enregistrer un fichier, l'enregistrement se passe
très bien s'il n'y a pas de caractères accentués, s'il y en a, ne
serait-ce qu'un seul (é), l'enregistrement est vide.

Ce problème existe aussi bien pour l'UTF-8 que l'ISO-8859-1.

Je sais qu'il existe un moyen en java de spécifier la nature de
l'encodage d'une string mais n'en connait pas la sybtaxe, qu'elle
est-elle ?

Je précise que je suis sous MacOS X.2.6 java 1.4.1...

--
Yvon


Avatar
yvon.thoravallist
Xavier Tarrago wrote:

L'encodage est une manière de convertir un flot de bytes en tableau de
caractères unicode (2 octets).
Les caractères en mémoire sont toujours en unicode, il n'y a donc pas
d'encodage associé à une String.
A la lecture ou l'écriture, on spécifie l'encodage dans l'objet qui fait la
conversion Stream <-> Character, c'est-à-dire OutputStreamWriter et
InputStreamWriter. On peut fixer l'encoding à la construction
Writer w = new OutputStreamWriter( new FileOutputStream("fichier"),
"ISO-8859-1");
(non testé, peut-être approximatif)


OK merci, ce n'est pas à moi de le faire (j'utilise java à travers
javascript).

chose curieuse quand je souhaite sauvegarder une string dans un fichier
ça marche eccepté quand la string en question contient au moins une
lettre accentuée auquel cas le fichier est bien créé mais est vide...
--
Yvon