Problème : Les "labels" et les "descriptions" de champ d'un formulaire s'affiche mal.

Information importante

En raison d'un grand nombre d'inscriptions de spammers sur notre site, polluant sans relache notre forum, nous suspendons la création de compte via le formulaire de "sign up".

Il est néanmoins toujours possible de devenir adhérent•e en faisant la demande sur cette page, rubrique "Inscription" : https://www.drupal.fr/contact


De plus, le forum est désormais "interdit en écriture". Il n'est plus autorisé d'y écrire un sujet/billet/commentaire.

Pour contacter la communauté, merci de rejoindre le slack "drupalfrance".

Si vous voulez contacter le bureau de l'association, utilisez le formulaire disponible ici, ou envoyez-nous un DM sur twitter.

Salut les amis,

J'ai développé un formulaire avec des Forms API. Maintenant mon problème c'est que les "labels" et les "descriptions" de mes champs s'affiche mal. En fait les caractères "é, è, à, apostrophe" ne sont pas accepté. Par exemple:

Rapport d'activité.

s'affiche

Rapports d"activit?label>.

Note : Si je mes apostrophe entre "d" et "a". Il me donne erreur suivant.

Parse error: parse error in c:\program files\easyphp1-8\www\drupal\modules\propose_weblink\propose_weblink.module on line 240

Est-ce qqun a un idée??

Je vous remercie.

Sympa le chinois ;)

A mon avis deux choses:
1/ il est preferable de mettre les labels & co en anglais qd tu crees un module. Ca parait bizarre mais vu qu'ils sont moulines par la fonction t() si tu les mets en francais ca va creer un micmac dans ta traduction de site.
De plus les labels sont censes etre en UTF8 donc un é est en fait un é, jette un oeil en ouvrant le fichier de traduction (fr.po) dans un editeur de texte pour avoir une idee des accents.

2/ Si tu mets une apostrophe ' dans une chaine de caractere PHP, il y a 2 cas:
a) ta chaine est ecrite de cette maniere $chaine = "ma chaine d'enfer"; donc encadre par des doubles apostrophes ", la pas de pb.
b) a chaine est ecrite de cette maniere $chaine = 'ma chaine d'enfer'; donc encadre par des apostrophes simples ', la y a pb car ton apostrophe va en fait terminer ta chaine...
Donc dans ce cas il faut echapper ton apostrophe par un \ $chaine = 'ma chaine d\'enfer'; et la ca marche.

Merci les amis,

J'utilise editplus comme éditeur de texte mais je ne sais pas comment le configurer pour UTF-8.

Par contre j'ai utilisé la solution proposé par tostinni et ça marche très bien.

Juste je n'arrive pas à afficher "ô" correctement, pourrait qqun me dire par quoi le remplacer ??

Je vous remercie à l'avance.

Quelques précisions :

  • Echapper les apostrophes, c'est bien mais parfois on oublie... Pourquoi ne pas utiliser des guillemets doubles pour délimiter la chaîne et des guillemets simples à l'intérieur ? Par exemple : "rapport d'activité"

  • +1 pour la remarque de damz : il faut travailler directement en UTF-8 et tu n'auras aucun pb (consulte la doc de ton éditeur, la plupart sont capables de le prendre en charge). Cela dit, si ça ne marche pas, tu peux toujours encoder manuellement une chaîne de caractères en utf-8 avec la fonction PHP utf8_encode().

  • Enfin, l'entité dont tu as besoin pour ô est ô