Dans une Applet je récupère des Strings venant de Delphi que je vais
ensuite afficher dans un java.awt.Label. Ces strings ont leurs
caractères accentués remplacé par des #xxx.
par exemple:
param#232tres pour paramètres
J'ai fait une routine de conversion:
public static String Delphi2Java( String s ) {
if( s.indexOf( "#" ) >= 0 ) {
for( int c = 190 ; c <= 255 ; c++ ) {
String pattern = "#" + c ;
int pos = s.indexOf( pattern ) ;
while( pos >= 0 ) {
char insertedChar = ( char )c ;
s = s.substring( 0 , pos ) + insertedChar + s.substring( pos + 4 )
;
pos = s.indexOf( pattern ) ;
}
}
}
return s ;
}
Mais je ne suis pas sur que l'usage de la valeur 232 pour è par exemple,
qui marche très bien sous Windows, fonctionnera aussi sous MAC. Ne
devrait-je pas inserer le caractère unicode correspondant et comment ?
ou bien faire une conversion de ma string en unicode en utilisant un
jeux de caractère MAC et comment ?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
MacTotoche
Frederic WOEHL wrote:
Dans une Applet je récupère des Strings venant de Delphi que je vais ensuite afficher dans un java.awt.Label. Ces strings ont leurs caractères accentués remplacé par des #xxx.
par exemple : param#232tres pour paramètres
[...] Delphi2Java
Mais je ne suis pas sur que l'usage de la valeur 232 pour è par exemple, qui marche très bien sous Windows, fonctionnera aussi sous MAC. Le code que tu donnes ne sera pas OK tel quel sur Mac :(
Ne devrait-je pas inserer le caractère unicode correspondant et comment ? ou bien faire une conversion de ma string en unicode en utilisant un jeux de caractère MAC et comment ? Si tu gardes ta méthode telle quelle, le plus commode me semblerait de
tout passer en UTF-8 après.
String s1, s2; s1 = Delphi2Java("param#232tres");
// pas compat chez moi System.out.println(s1);
// compat chez moi try { s2 = new String(s1.getBytes("UTF-8")); // voir la doc System.out.println(s2); } catch (Exception ex) { ex.printStackTrace();}
Tu peux aussi aller voir des infos sur les charsets dans la doc de java.nio.charset.Charset.
-- Olivier This space for sale.
Frederic WOEHL wrote:
Dans une Applet je récupère des Strings venant de Delphi que je vais
ensuite afficher dans un java.awt.Label. Ces strings ont leurs
caractères accentués remplacé par des #xxx.
par exemple : param#232tres pour paramètres
[...] Delphi2Java
Mais je ne suis pas sur que l'usage de la valeur 232 pour è par exemple,
qui marche très bien sous Windows, fonctionnera aussi sous MAC.
Le code que tu donnes ne sera pas OK tel quel sur Mac :(
Ne devrait-je pas inserer le caractère unicode correspondant et comment ?
ou bien faire une conversion de ma string en unicode en utilisant un
jeux de caractère MAC et comment ?
Si tu gardes ta méthode telle quelle, le plus commode me semblerait de
tout passer en UTF-8 après.
String s1, s2;
s1 = Delphi2Java("param#232tres");
// pas compat chez moi
System.out.println(s1);
// compat chez moi
try {
s2 = new String(s1.getBytes("UTF-8")); // voir la doc
System.out.println(s2);
}
catch (Exception ex) { ex.printStackTrace();}
Tu peux aussi aller voir des infos sur les charsets dans la doc de
java.nio.charset.Charset.
Dans une Applet je récupère des Strings venant de Delphi que je vais ensuite afficher dans un java.awt.Label. Ces strings ont leurs caractères accentués remplacé par des #xxx.
par exemple : param#232tres pour paramètres
[...] Delphi2Java
Mais je ne suis pas sur que l'usage de la valeur 232 pour è par exemple, qui marche très bien sous Windows, fonctionnera aussi sous MAC. Le code que tu donnes ne sera pas OK tel quel sur Mac :(
Ne devrait-je pas inserer le caractère unicode correspondant et comment ? ou bien faire une conversion de ma string en unicode en utilisant un jeux de caractère MAC et comment ? Si tu gardes ta méthode telle quelle, le plus commode me semblerait de
tout passer en UTF-8 après.
String s1, s2; s1 = Delphi2Java("param#232tres");
// pas compat chez moi System.out.println(s1);
// compat chez moi try { s2 = new String(s1.getBytes("UTF-8")); // voir la doc System.out.println(s2); } catch (Exception ex) { ex.printStackTrace();}
Tu peux aussi aller voir des infos sur les charsets dans la doc de java.nio.charset.Charset.
-- Olivier This space for sale.
Frederic WOEHL
Salut et merci de ta réponse.
Helas ta solution ne fonctionne pas. Avec des System.out.println, effectivement j'ai ce que je veux mais mes strings sont utilisées par des java.awt.Label avec lequel l'affichage n'est pas correct.
Ma question peut donc se généraliser comme suit: Quel encodage doit-on utiliser pour afficher des accentués avec un java.awt.Label sous Windows et sous Macintosh ?
FRED
MacTotoche wrote:
Frederic WOEHL wrote:
Dans une Applet je récupère des Strings venant de Delphi que je vais ensuite afficher dans un java.awt.Label. Ces strings ont leurs caractères accentués remplacé par des #xxx.
par exemple : param#232tres pour paramètres
[...] Delphi2Java
Mais je ne suis pas sur que l'usage de la valeur 232 pour è par exemple, qui marche très bien sous Windows, fonctionnera aussi sous MAC. Le code que tu donnes ne sera pas OK tel quel sur Mac :(
Ne devrait-je pas inserer le caractère unicode correspondant et comment ? ou bien faire une conversion de ma string en unicode en utilisant un jeux de caractère MAC et comment ? Si tu gardes ta méthode telle quelle, le plus commode me semblerait de
tout passer en UTF-8 après.
String s1, s2; s1 = Delphi2Java("param#232tres");
// pas compat chez moi System.out.println(s1);
// compat chez moi try { s2 = new String(s1.getBytes("UTF-8")); // voir la doc System.out.println(s2); } catch (Exception ex) { ex.printStackTrace();}
Tu peux aussi aller voir des infos sur les charsets dans la doc de java.nio.charset.Charset.
-- Olivier This space for sale.
Salut et merci de ta réponse.
Helas ta solution ne fonctionne pas.
Avec des System.out.println, effectivement j'ai ce que je veux mais mes strings
sont utilisées par des java.awt.Label avec lequel l'affichage n'est pas
correct.
Ma question peut donc se généraliser comme suit:
Quel encodage doit-on utiliser pour afficher des accentués avec un
java.awt.Label sous Windows et sous Macintosh ?
FRED
MacTotoche wrote:
Frederic WOEHL wrote:
Dans une Applet je récupère des Strings venant de Delphi que je vais
ensuite afficher dans un java.awt.Label. Ces strings ont leurs
caractères accentués remplacé par des #xxx.
par exemple : param#232tres pour paramètres
[...] Delphi2Java
Mais je ne suis pas sur que l'usage de la valeur 232 pour è par exemple,
qui marche très bien sous Windows, fonctionnera aussi sous MAC.
Le code que tu donnes ne sera pas OK tel quel sur Mac :(
Ne devrait-je pas inserer le caractère unicode correspondant et comment ?
ou bien faire une conversion de ma string en unicode en utilisant un
jeux de caractère MAC et comment ?
Si tu gardes ta méthode telle quelle, le plus commode me semblerait de
tout passer en UTF-8 après.
String s1, s2;
s1 = Delphi2Java("param#232tres");
// pas compat chez moi
System.out.println(s1);
// compat chez moi
try {
s2 = new String(s1.getBytes("UTF-8")); // voir la doc
System.out.println(s2);
}
catch (Exception ex) { ex.printStackTrace();}
Tu peux aussi aller voir des infos sur les charsets dans la doc de
java.nio.charset.Charset.
Helas ta solution ne fonctionne pas. Avec des System.out.println, effectivement j'ai ce que je veux mais mes strings sont utilisées par des java.awt.Label avec lequel l'affichage n'est pas correct.
Ma question peut donc se généraliser comme suit: Quel encodage doit-on utiliser pour afficher des accentués avec un java.awt.Label sous Windows et sous Macintosh ?
FRED
MacTotoche wrote:
Frederic WOEHL wrote:
Dans une Applet je récupère des Strings venant de Delphi que je vais ensuite afficher dans un java.awt.Label. Ces strings ont leurs caractères accentués remplacé par des #xxx.
par exemple : param#232tres pour paramètres
[...] Delphi2Java
Mais je ne suis pas sur que l'usage de la valeur 232 pour è par exemple, qui marche très bien sous Windows, fonctionnera aussi sous MAC. Le code que tu donnes ne sera pas OK tel quel sur Mac :(
Ne devrait-je pas inserer le caractère unicode correspondant et comment ? ou bien faire une conversion de ma string en unicode en utilisant un jeux de caractère MAC et comment ? Si tu gardes ta méthode telle quelle, le plus commode me semblerait de
tout passer en UTF-8 après.
String s1, s2; s1 = Delphi2Java("param#232tres");
// pas compat chez moi System.out.println(s1);
// compat chez moi try { s2 = new String(s1.getBytes("UTF-8")); // voir la doc System.out.println(s2); } catch (Exception ex) { ex.printStackTrace();}
Tu peux aussi aller voir des infos sur les charsets dans la doc de java.nio.charset.Charset.
-- Olivier This space for sale.
MacTotoche
Frederic WOEHL wrote:
Helas ta solution ne fonctionne pas. Avec des System.out.println, effectivement j'ai ce que je veux mais mes strings sont utilisées par des java.awt.Label avec lequel l'affichage n'est pas correct. Oups pardon je pensais à des flux alors que tu parlais de Label.
En effet la chaine convertie s2 n'est pas bonne dans ce cas.
Ma question peut donc se généraliser comme suit: Quel encodage doit-on utiliser pour afficher des accentués avec un java.awt.Label sous Windows et sous Macintosh ? Etrangement, ici, la chaine s1 issue de ta methode marche dans un Label.
Comment un (char)232 peut-il donner un "è" sur Mac... J'en perds mon MacRoman...
-- Olivier This space for sale.
Frederic WOEHL wrote:
Helas ta solution ne fonctionne pas.
Avec des System.out.println, effectivement j'ai ce que je veux mais mes strings
sont utilisées par des java.awt.Label avec lequel l'affichage n'est pas
correct.
Oups pardon je pensais à des flux alors que tu parlais de Label.
En effet la chaine convertie s2 n'est pas bonne dans ce cas.
Ma question peut donc se généraliser comme suit:
Quel encodage doit-on utiliser pour afficher des accentués avec un
java.awt.Label sous Windows et sous Macintosh ?
Etrangement, ici, la chaine s1 issue de ta methode marche dans un Label.
Comment un (char)232 peut-il donner un "è" sur Mac...
J'en perds mon MacRoman...
Helas ta solution ne fonctionne pas. Avec des System.out.println, effectivement j'ai ce que je veux mais mes strings sont utilisées par des java.awt.Label avec lequel l'affichage n'est pas correct. Oups pardon je pensais à des flux alors que tu parlais de Label.
En effet la chaine convertie s2 n'est pas bonne dans ce cas.
Ma question peut donc se généraliser comme suit: Quel encodage doit-on utiliser pour afficher des accentués avec un java.awt.Label sous Windows et sous Macintosh ? Etrangement, ici, la chaine s1 issue de ta methode marche dans un Label.
Comment un (char)232 peut-il donner un "è" sur Mac... J'en perds mon MacRoman...
-- Olivier This space for sale.
Frederic WOEHL
Encore merci de repondre.
MacTotoche wrote:
Frederic WOEHL wrote:
Helas ta solution ne fonctionne pas. Avec des System.out.println, effectivement j'ai ce que je veux mais mes strings sont utilisées par des java.awt.Label avec lequel l'affichage n'est pas correct. Oups pardon je pensais à des flux alors que tu parlais de Label.
En effet la chaine convertie s2 n'est pas bonne dans ce cas.
Ma question peut donc se généraliser comme suit: Quel encodage doit-on utiliser pour afficher des accentués avec un java.awt.Label sous Windows et sous Macintosh ? Etrangement, ici, la chaine s1 issue de ta methode marche dans un Label.
Comment un (char)232 peut-il donner un "è" sur Mac... J'en perds mon MacRoman...
C'est bien sous Windows que cela fonctionne et je cherche à le faire fonctionner aussi sous MAC. En fait mon problème est que je n'ai pas de MAC et donc je cherche une méthode d'abord en théorie. Pour le moment j'envisage une bidouille immonde (on en est tous là...) via une table de conversion vers MacRoman mais j'attend de trouver deux ou trois infos avant d'aller tester chez mon client.
FRED
-- Olivier This space for sale.
Encore merci de repondre.
MacTotoche wrote:
Frederic WOEHL wrote:
Helas ta solution ne fonctionne pas.
Avec des System.out.println, effectivement j'ai ce que je veux mais mes strings
sont utilisées par des java.awt.Label avec lequel l'affichage n'est pas
correct.
Oups pardon je pensais à des flux alors que tu parlais de Label.
En effet la chaine convertie s2 n'est pas bonne dans ce cas.
Ma question peut donc se généraliser comme suit:
Quel encodage doit-on utiliser pour afficher des accentués avec un
java.awt.Label sous Windows et sous Macintosh ?
Etrangement, ici, la chaine s1 issue de ta methode marche dans un Label.
Comment un (char)232 peut-il donner un "è" sur Mac...
J'en perds mon MacRoman...
C'est bien sous Windows que cela fonctionne et je cherche à le faire fonctionner
aussi sous MAC.
En fait mon problème est que je n'ai pas de MAC et donc je cherche une méthode
d'abord en théorie. Pour le moment j'envisage une bidouille immonde (on en est tous
là...) via une table de conversion vers MacRoman mais j'attend de trouver deux ou
trois infos avant d'aller tester chez mon client.
Helas ta solution ne fonctionne pas. Avec des System.out.println, effectivement j'ai ce que je veux mais mes strings sont utilisées par des java.awt.Label avec lequel l'affichage n'est pas correct. Oups pardon je pensais à des flux alors que tu parlais de Label.
En effet la chaine convertie s2 n'est pas bonne dans ce cas.
Ma question peut donc se généraliser comme suit: Quel encodage doit-on utiliser pour afficher des accentués avec un java.awt.Label sous Windows et sous Macintosh ? Etrangement, ici, la chaine s1 issue de ta methode marche dans un Label.
Comment un (char)232 peut-il donner un "è" sur Mac... J'en perds mon MacRoman...
C'est bien sous Windows que cela fonctionne et je cherche à le faire fonctionner aussi sous MAC. En fait mon problème est que je n'ai pas de MAC et donc je cherche une méthode d'abord en théorie. Pour le moment j'envisage une bidouille immonde (on en est tous là...) via une table de conversion vers MacRoman mais j'attend de trouver deux ou trois infos avant d'aller tester chez mon client.