Problème accents avec PHPWord et $document->SetValue [Résolu]

Messages postés
6
Date d'inscription
mardi 4 juillet 2017
Dernière intervention
7 juillet 2017
- 6 juil. 2017 à 00:03 - Dernière réponse :
Messages postés
23257
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
17 novembre 2018
- 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
Afficher la suite 

Votre réponse

5 réponses

Messages postés
23257
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
17 novembre 2018
- 6 juil. 2017 à 00:48
Messages postés
6
Date d'inscription
mardi 4 juillet 2017
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
Messages postés
23257
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
17 novembre 2018
>
Messages postés
6
Date d'inscription
mardi 4 juillet 2017
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 !!!! )
Messages postés
6
Date d'inscription
mardi 4 juillet 2017
Dernière intervention
7 juillet 2017
>
Messages postés
23257
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
17 novembre 2018
- 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
Messages postés
23257
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
17 novembre 2018
>
Messages postés
6
Date d'inscription
mardi 4 juillet 2017
Dernière intervention
7 juillet 2017
- 7 juil. 2017 à 11:21
yes.
Bonne continuation.
Commenter la réponse de jordane45

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.