Problème accents avec PHPWord et $document->SetValue

Résolu
christianr06
Messages postés
6
Date d'inscription
mardi 4 juillet 2017
Statut
Membre
Dernière intervention
7 juillet 2017
- 6 juil. 2017 à 00:03
jordane45
Messages postés
36325
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
25 septembre 2022
- 7 juil. 2017 à 11:21
Bonjour,

Je génère un docx avec cette librairie.
Le problème : Les accents ne passent pas correctement
exemple : 210 allée J. Thuaire... le é devienté
Je suis bien en UTF-8, j'utilise Code Igniter comme Framework

Comment débogguer ce problème ?
Merci de votre aide
A voir également:
  • Phpword template
  • Phpword setvalue - Meilleures réponses
  • Phpword codeigniter - Meilleures réponses
  • Phpword - Forum - PHP

1 réponse

jordane45
Messages postés
36325
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
25 septembre 2022
350
6 juil. 2017 à 00:48
0
christianr06
Messages postés
6
Date d'inscription
mardi 4 juillet 2017
Statut
Membre
Dernière intervention
7 juillet 2017

6 juil. 2017 à 09:59
Merci pour ces renseignements.
Je reste perplexe car je suis bien en UTF-8
Comme j’obtenais le texte d'une BDD, j'ai remplaçé par du texte accentué directement dans une variable.
Pas de changement...
J'ai alors utilisé utf8_decode() qui converti de utf8 à iso-8859-1 et à ma surprise mes accents sont corrects dans le document .docx !
J'en conclue que le .docx est en iso-8859-1 ?

Je développe sur Mac et ma version de word est Word pour Mac 2011, version 14.

Quelle est ta compréhension sur celà. Je pensais que Word était en multibytes.

Merci encore
0
jordane45
Messages postés
36325
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
25 septembre 2022
350 > christianr06
Messages postés
6
Date d'inscription
mardi 4 juillet 2017
Statut
Membre
Dernière intervention
7 juillet 2017

6 juil. 2017 à 14:51
Aucune idée si le souci vient de ton mac ou non... mais... as tu vérifié que les fichiers étaient encodé en UTF8 sans bom ? (je ne parle pas de la déclaration utf8 faites dans le code mais bien de l'encodage de tes fichiers !!!! )
0
christianr06
Messages postés
6
Date d'inscription
mardi 4 juillet 2017
Statut
Membre
Dernière intervention
7 juillet 2017
> jordane45
Messages postés
36325
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
25 septembre 2022

7 juil. 2017 à 10:00
Oui, mes fichiers sont bien en utf8 sans bom. C'est le défaut dans Code Igniter.
J'ai aussi vérifié l'entête de document.xml dans le zip du document template <?xml version="1.0" encoding="UTF-8" standalone="yes"?>

Donc pour résumer
Mon fichier PHP est en utf8 sans bom, le template est utf8 et pour conserver les accents je dois faire
$document->setValue('nom', utf8_decode('éèàùôî');
afin d'obtenir les accents corrects dans le document word généré par
$document->save($docName);

Et ça fonctionne parfaitement avec tous les ${} présents dans le template...

On clôt la discussion ?
Cordialement
0
jordane45
Messages postés
36325
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
25 septembre 2022
350 > christianr06
Messages postés
6
Date d'inscription
mardi 4 juillet 2017
Statut
Membre
Dernière intervention
7 juillet 2017

7 juil. 2017 à 11:21
yes.
Bonne continuation.
0