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

EDI, CMS, Outils, Scripts et API PHP Discussion :

L'encodage des caractères est "coupé" pour les résumés [Drupal]


Sujet :

EDI, CMS, Outils, Scripts et API PHP

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Géomaticien
    Inscrit en
    Juillet 2013
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Géomaticien

    Informations forums :
    Inscription : Juillet 2013
    Messages : 48
    Points : 36
    Points
    36
    Par défaut L'encodage des caractères est "coupé" pour les résumés
    Bonjour,

    Je travaille sous Drupal 7. Sur la page suivante, si vous descendez à la rubrique "témoignage", vous voyez dans le résumé du texte que l'encodage du dernier caractère "é" ne fonctionne pas (remplacé par �) alors qu'il marche pour les "é" précédents. Je pense que cela est du à la limitation du nombre de caractères qui doit "couper" l'encodage (&eacute en plein milieu.

    En effet, si vous ouvrez le témoignage, l'encodage est bon.

    Je ne vois pas du tout comment gérer ce problème. Ce doit être pourtant relativement courant. Des suggestions sont les bienvenues !

    A+
    Samy

  2. #2
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2013
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2013
    Messages : 38
    Points : 53
    Points
    53
    Par défaut
    Hello,

    D’après ce que je vois le "é" n'est pas encodé dans la source de la page (cf http://ecophytopic.fr/node/26928), donc j'imagine qu'il l'est dans la bdd... il faudrait d'abord décoder le paragraphe et après faire le truncate au Xième caractère...

    As-tu le code qui gère les témoignages sur la page d'accueil ?

    Merci,
    AlexL

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Géomaticien
    Inscrit en
    Juillet 2013
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Géomaticien

    Informations forums :
    Inscription : Juillet 2013
    Messages : 48
    Points : 36
    Points
    36
    Par défaut
    Salut,

    Qu'entends-tu exactement par faire "un truncate sur le Xieme caractère" ? c'est évincer le dernier caractère ? Si c'est le cas ça ne sera pas une solution durable car le problème va se répéter à chaque fois que le dernier caractère est un caractère spécial...Il y a peut-être un moyen en faisant une condition : si le dernier caractère est un caractère spécial, change la valeur du nombre de caractères avec un -1. J'essaye ça.

  4. #4
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2013
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2013
    Messages : 38
    Points : 53
    Points
    53
    Par défaut
    Hello,

    Un truncate, un substr, on coupe la chaîne au Xieme caractères.
    Est ce que tu peux nous montrer le code qui affiche le paragraphe "coupé" ?

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Géomaticien
    Inscrit en
    Juillet 2013
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Géomaticien

    Informations forums :
    Inscription : Juillet 2013
    Messages : 48
    Points : 36
    Points
    36
    Par défaut
    Salut,

    Le code utilise effectivement un substr(). Je ne peux pas le montrer pour des raisons professionnelles, mais en gros, le substr prends les paramètres basiques, une chaîne, un début (0), une fin (120). Ce qui se passe, c'est que si un caractère "é" est le 120eme, sa traduction encodée, é est tronquée. D'où le bug.

  6. #6
    Nouveau membre du Club
    Homme Profil pro
    Géomaticien
    Inscrit en
    Juillet 2013
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Géomaticien

    Informations forums :
    Inscription : Juillet 2013
    Messages : 48
    Points : 36
    Points
    36
    Par défaut
    Alors j'ai trouvé une solution dans les exemples de la doc php sur substr en utilisant mb_substr à la place de substr. J'ai découvert par la suite la fonction drupal truncate_utf8 qui aurait pu effectivement faire l'affaire. Si quelqu'un a une explication sur le pourquoi mb_substr est à privilégier pour l'utf8 ça m'intéresse. Ensuite, est-ce courant d'utiliser mb_substr dans drupal ou bien est-il plus usuel d'utiliser truncate ?

    A+

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 0
    Dernier message: 27/11/2015, 16h19
  2. [XL-2010] Encodage des caractères dans les codes-source VBA
    Par puresprit dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 10/04/2013, 23h16
  3. Réponses: 1
    Dernier message: 03/12/2010, 10h02
  4. La guerre des OS est déclarée pour les Netbooks
    Par Annaelle32 dans le forum Actualités
    Réponses: 17
    Dernier message: 09/09/2009, 08h45
  5. [Mail] Encodage des caractères pour les mails
    Par Cr@zyDeep dans le forum Langage
    Réponses: 2
    Dernier message: 29/03/2007, 20h11

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