IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Documents Java Discussion :

probléme generation de fichier doc en arabe


Sujet :

Documents Java

  1. #1
    Membre confirmé
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2008
    Messages
    66
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Mars 2008
    Messages : 66
    Par défaut probléme generation de fichier doc en arabe
    Salut tout le monde.
    Je génére un document word en arabe à partir d'un programme java, mes variables statiques arabes (ex : titre, sous titre, ...) sont declarées dans une interface (UTF-8), j'utilise weblogic pour deployer l'application.
    le probléme c'est que ces variables ne s'affichent pas correctement en arable lors de la generarion du doc.

    N.B : les données arabes prevenant de la base s'affichent correctement.

    Je genere le doc a travers un OutputStream de type ByteArrayOutputStream

    code :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    ByteArrayOutputStream os = new ByteArrayOutputStream(); 
     
    // code pour generer le doc
     
    JRRtfExporter exp = new JRRtfExporter();
    exp.setParameter(JRExporterParameter.CHARACTER_ENCODING, "UTF-8");
    return os.toByteArray();
    Merci d'avance pour vos reponse.

  2. #2
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 579
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 579
    Par défaut
    Hum.

    Ça donne quoi si tu essaies d'enregistrer des données arabes de la base dans un fichier base.txt encodé en UTF-8 ?

    Et si tu essaies d'enregistrer les constantes en question dans un fichier constantes.txt encodé en UTF-8 ?

    Avec ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    public class StoreAsUtf8 {
      public static void store(String string, File file) throws IOException {
        Writer writer = null;
        try {
          writer = new OutputStreamWriter(new FileOutputStream(file), "utf-8");
          writer.write(string);
        } finally {
          writer.close();
        }
      }
    }
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre confirmé
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2008
    Messages
    66
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Mars 2008
    Messages : 66
    Par défaut
    je n'ai pas de probléme avec les données prevenant de la base, et les constates sont enregistrées dans une interface codée UTF-8.

    je n'utilise pas FileOutputStream, j'utilise ByteArrayOutputStream

  4. #4
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 579
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 579
    Par défaut
    Je te demande pas ce que ça donne quand tu fais autre chose (parce que bon, tu l'as déjà dit dans ton premier message, je sais lire merci,) je te demande ce que ça donne quand tu fais ce que je dis.

    Cela nous permettra de vérifier si tes String constantes et des String venant de la base de données sont correctes.
    Mon petit bout de code étant petit et simple, il est facile de vérifier qu'il est totalement exempt de bug. Donc si quelque chose ne va pas quand on s'en sert, c'est que les paramètres avec lesquels on l'a appelé ont un problème. Si tout va bien, c'est qu'ils n'en ont pas. Simple.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Membre confirmé
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2008
    Messages
    66
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Mars 2008
    Messages : 66
    Par défaut
    les caractéres s'affichent comme ça : "رقـم"

  6. #6
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 579
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 579
    Par défaut
    Bon ben voilà. Il est là le problème. C'est la BDD ou c'est les constantes qui font ça ?

    Ah, et tu es sûr que tu ouvres le fichier en utf-8 ?
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  7. #7
    Membre confirmé
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2008
    Messages
    66
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Mars 2008
    Messages : 66
    Par défaut
    oui je travaille avec eclipse, le fichier s'ouvre en UTF-8.
    je genere un ear que je deploie avec weblogic. sous eclipse tout va bien, mais avec l'ear tjrs des problémes
    je crois que l'encoding du fichier des constates change aprés le build

  8. #8
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 579
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 579
    Par défaut
    Ok je ne comprends rien à ce que tu racontes. Je t'ai demandé de faire des trucs et de nous expliquer le résultat.

    Tu l'as fait, oui / non ?

    Si oui, tu pourrais nous donner la liste complète des résultats, avec quoi, etc ?
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  9. #9
    Membre confirmé
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2008
    Messages
    66
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Mars 2008
    Messages : 66
    Par défaut
    je ne vois pas ou je peux integrer ton code. !!!
    je travaille avec la librairie iText

  10. #10
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 579
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 579
    Par défaut
    Citation Envoyé par yasworld Voir le message
    je ne vois pas ou je peux integrer ton code. !!!
    je travaille avec la librairie iText
    Je fais pas dans la divination. Pour résoudre un problème il faut le diagnostiquer.

    En l'état ce que je peux te dire, c'est que tu as un conflit de charsets. Où ça, sur quoi ? N'importe où, absolument tout est possible.
    J'ai essayé de te donner des moyens d'isoler la partie problématique, mais tu ne sais pas intégrer mon code.

    C'est pourtant pas compliqué, il faut l'appeler une fois avec une des tes constantes, et une fois avec du contenu de la BDD.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  11. #11
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 579
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 579
    Par défaut
    Citation Envoyé par yasworld Voir le message
    je crois que l'encoding du fichier des constates change aprés le build
    J'ai oublié de dire : cela est impossible. Une fois qu'un .class est compilé, il est compilé. L'encodage d'une String ne peut plus changer, c'est de l'UTF-16, pas le choix.

    Au moment de la compilation, par contre, il faut effectivement savoir en quel encodage est le fichier .java. Si c'est de l'utf-8 ou autre chose.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  12. #12
    Membre confirmé
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2008
    Messages
    66
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Mars 2008
    Messages : 66
    Par défaut
    Ok merci
    je vais essayer de voir à quel moment je perd l'encodage de ma classe de constantes.

  13. #13
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    votre fichier java est codé en utf-8. Bien, mais êtes vous sur d'avoir bien configuré l'ide pour que le compilateur lsie les fichiers source en utf-8?


    On peux voir le bout de code où sont déclarées les constantes? Et un exemple de fichier généré?

  14. #14
    Membre confirmé
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2008
    Messages
    66
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Mars 2008
    Messages : 66
    Par défaut
    Citation Envoyé par tchize_ Voir le message

    On peux voir le bout de code où sont déclarées les constantes? Et un exemple de fichier généré?

    le code dans le fichier des constantes :
    Code x : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    
    public interface IConstantesImpression {
               
               // exemple de variable
    	public final static String CELL3_2 = "الســاعــة"; // ecrire en arabe et pas avec ces codes que vous vouyez .
    	public final static String CELL3_3 = "رقـم"; 
    	public final static String TXT_LE = "فــي";  
    	
    }


    quelque contenu du fichier doc généré :

    ال�قــــرة 1
    رقـم :


    Citation Envoyé par tchize_ Voir le message
    votre fichier java est codé en utf-8. Bien, mais êtes vous sur d'avoir bien configuré l'ide pour que le compilateur lsie les fichiers source en utf-8?
    Comment on peut faire ça, je génér l'ear avec Ant.?

  15. #15
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 579
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 579
    Par défaut
    Citation Envoyé par yasworld Voir le message
    Comment on peut faire ça, je génér l'ear avec Ant.?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <javac encoding="utf-8" srcdir="..." destdir="..."/>
    Effectivement, c'est l'explication la plus probable, l'exécution dans Eclipse et l'exécution dans weblogic étant évidemment le résultat de deux builds différents.
    J'aurais dû y penser, toutes mes confuses, tout ça.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  16. #16
    Membre confirmé
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2008
    Messages
    66
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Mars 2008
    Messages : 66
    Par défaut
    aucune solution ne marche bien
    j'ai inseré la ligne suivant au debut du fichier de build
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <?xml version="1.0" encoding="utf-8"?>
    et tjrs le même resultat

  17. #17
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    Si vous remplacez votre code par
    Code x : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    
    public interface IConstantesImpression {
               
               // exemple de variable
    	public final static String CELL3_2 = "\u0627\u0644\u0633\u0640\u0640\u0627\u0639\u0640\u0640\u0629";
    	public final static String CELL3_3 = "\u0631\u0642\u0640\u0645"; 
    	public final static String TXT_LE = "\u0641\u0640\u0640\u064a";  
    	
    }
    ca donne quoi? Histoire de confirmer ou non la culpabilité du compilateur.

  18. #18
    Membre confirmé
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2008
    Messages
    66
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Mars 2008
    Messages : 66
    Par défaut
    Citation Envoyé par tchize_ Voir le message
    Si vous remplacez votre code par
    Code x : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    
    public interface IConstantesImpression {
               
               // exemple de variable
    	public final static String CELL3_2 = "\u0627\u0644\u0633\u0640\u0640\u0627\u0639\u0640\u0640\u0629";
    	public final static String CELL3_3 = "\u0631\u0642\u0640\u0645"; 
    	public final static String TXT_LE = "\u0641\u0640\u0640\u064a";  
    	
    }
    ca donne quoi? Histoire de confirmer ou non la culpabilité du compilateur.
    c'est quel type d'encodage celui la ?
    je vais essayer cet solution demain et je vais vous repondre

    Merci à vous tous pour vos reponses

  19. #19
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    c'est juste des caractère d'échappement unicode. C'est justement indépendant de l'encodage.

  20. #20
    Membre confirmé
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2008
    Messages
    66
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Mars 2008
    Messages : 66
    Par défaut
    Citation Envoyé par tchize_ Voir le message
    Si vous remplacez votre code par
    Code x : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    
    public interface IConstantesImpression {
               
               // exemple de variable
    	public final static String CELL3_2 = "\u0627\u0644\u0633\u0640\u0640\u0627\u0639\u0640\u0640\u0629";
    	public final static String CELL3_3 = "\u0631\u0642\u0640\u0645"; 
    	public final static String TXT_LE = "\u0641\u0640\u0640\u064a";  
    	
    }
    avec ce codage tout passe bien
    donc comment je peux convertir tout le texte arabe en ce codage?
    Merci

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Réponses: 1
    Dernier message: 30/06/2010, 21h15
  2. [WD-2007] Problème entre un fichier .dot et les .doc
    Par Montfeus dans le forum Word
    Réponses: 1
    Dernier message: 26/06/2009, 17h39
  3. Problème lecture fichier doc
    Par OLman135 dans le forum Windows Forms
    Réponses: 7
    Dernier message: 31/07/2008, 14h01
  4. Double problème : RSS et fichiers doc
    Par gorhh dans le forum Zend Framework
    Réponses: 1
    Dernier message: 14/07/2008, 16h02
  5. [WORD] Problème pour concatener 2 fichiers .doc
    Par marco000 dans le forum VBA Word
    Réponses: 14
    Dernier message: 27/08/2006, 17h49

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo