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 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 - 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

1 réponse

jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 344
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 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 344 > 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 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024
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 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 344 > 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
Rejoignez-nous