Position actuelle: Accueil> Derniers articles> Comment résoudre le problème de l'affichage de texte brouillé dans la fonction d'imagestring?

Comment résoudre le problème de l'affichage de texte brouillé dans la fonction d'imagestring?

gitbox 2025-10-01

<?php // démarrer le texte écho "

Comment résoudre le problème de l'affichage de texte brouillé dans la fonction d'imagestring?

"
; // Contenu texte écho "

Dans PHP, la fonction d'imagestring est utilisée pour dessiner des chaînes sur les images, mais dans certains cas, le code brouillé apparaît directement lors de l'utilisation directement des caractères chinois ou non ASCII. Ceci est principalement parce que la fonction d'imagestring ne prend en charge que des caractères à un octet unique codés par ISO-8859-1, tandis que le chinois appartient à des caractères multi-octets.

"
; écho "

Solutions courantes

"
; écho "
    "
; écho "
  • Utilisez la fonction MB_Convert_encoding pour la conversion de codage: convertissez la chaîne de UTF-8 en gb2312 avant de dessiner chinois. Par exemple:
  • "
    ; écho "
    $ text = 'Test chinois'; $ text = mb_convert_encoding (\ $ text, 'gb2312', 'utf-8'); Imagestring (\ $ image, 5, 10, 10, \ $ text, \ $ couleur); "; Echo "
  • Utilisez la fonction ImageTtFText au lieu d'Imagestring: ImagettFText prend en charge les polices TrueType et peut afficher correctement le chinois. Par exemple:
  • "
    ; écho "
    \ $ font = &#39;path / to / your / font.ttf&#39;;
    \ $ text = &#39;test chinois&#39;;
    ImageTtfText (\ $ image, 20, 0, 10, 50, \ $ couleur, \ $ font, \ $ text);
    
    "
    ;
    Echo "
  • Assurez-vous que le codage de sortie de l'image et du navigateur est cohérent: avant de sortir l'image, définissez l'en-tête approprié, par exemple:
  • "
    ; écho "
    En-tête (&#39;Content-Type: image / png&#39;);
    
    "
    ;
    Echo "" ; écho "

    En bref, le cœur de la résolution du problème de l'imagerie chinoise brouillée est: l'imagestring lui-même ne prend pas en charge les caractères multi-octets , il est donc recommandé d'utiliser Imagettftext et de coopérer avec les fichiers de police appropriés.

    "
    ; ?>
    <?php // Le contenu de la fin n'a rien à voir avec le contenu de l'article écho "Il s'agit des informations affichées à la fin du programme et n'ont rien à voir avec le texte. \ N" ; ?>

    Cet article montre l'affichage complet de:

    1. la sortie pré-php est séparée du corps.

    2. L'article détaille les raisons et les solutions pour l'imagerie du code brouillé chinois.

    3. utiliser