Problème avec substr et dernier caractère...
Résolu/Fermé
A voir également:
- Problème avec substr et dernier caractère...
- Caractère spéciaux - Guide
- Caractère invisible ✓ - Forum Windows
- Caractère spéciaux mac clavier - Guide
- Caractère ascii - Guide
- 667 caractère spéciaux ✓ - Forum MSN / WLM
5 réponses
En fait, t'as raison en parti, mais tort en parti.
C'est bel et bien un problème de multi-octet (multi-byte).
Mais on est pas pris avec ce problème. Avec un peu de recherche et d'essai erreur, j'ai réussi à changer mon code pour qu'il prenne en compte les multi-bytes:
Donc:
Devient:
C'est bel et bien un problème de multi-octet (multi-byte).
Mais on est pas pris avec ce problème. Avec un peu de recherche et d'essai erreur, j'ai réussi à changer mon code pour qu'il prenne en compte les multi-bytes:
Donc:
$string = substr($string, 0, 28);
Devient:
$string = mb_substr( $string, '0', '28', 'UTF-8' );
re :
... En fait, t'as raison en parti, mais tort en parti. ...
Si cela peut te faire plaisir :-)
On y changeras rien, l'UTF8 est ainsi structuré.
Lupin
... En fait, t'as raison en parti, mais tort en parti. ...
Si cela peut te faire plaisir :-)
On y changeras rien, l'UTF8 est ainsi structuré.
Lupin
Bonjour,
en fait j'ai rencontré le même phénomène sur une gros logiciel HP OverView ServiceCenter
convertie à l'UTF8. Tous les caractères spéciaux sont codés sur 2 octets. Faut faire avec :-)
Lupin
en fait j'ai rencontré le même phénomène sur une gros logiciel HP OverView ServiceCenter
convertie à l'UTF8. Tous les caractères spéciaux sont codés sur 2 octets. Faut faire avec :-)
Lupin
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Pour régler le problème, il faut utiliser la fonction mb-substr. string mb_substr ( string str , int start , int length , string encoding )
mb_substr retourne la portion de la chaîne str qui commence au caractère start et a la longueur de length caractères.
mb_substr effectue une recherche de type strpos , en tenant compte des caractères multi-octets. La position de needle est comptée à partir du début de la chaîne haystack : les positions commencent à 0.
Si encoding est omis, l'encodage interne est utilisé. encoding est un nom d'encodage de caractères. S'il n'est pas spécifié, l'encodage interne est utilisé.
Par exemple, on remplacera substr($texte,0,300) par mb_substr( $texte, '0', '300', 'UTF-8' ).
mb_substr retourne la portion de la chaîne str qui commence au caractère start et a la longueur de length caractères.
mb_substr effectue une recherche de type strpos , en tenant compte des caractères multi-octets. La position de needle est comptée à partir du début de la chaîne haystack : les positions commencent à 0.
Si encoding est omis, l'encodage interne est utilisé. encoding est un nom d'encodage de caractères. S'il n'est pas spécifié, l'encodage interne est utilisé.
Par exemple, on remplacera substr($texte,0,300) par mb_substr( $texte, '0', '300', 'UTF-8' ).