Les caractères tronqués dans la fonction php substr sont dus au codage chinois UTF-8. Chaque caractère chinois occupe 3 octets, tandis que GB2312 occupe 2 octets et l'anglais occupe 1 octet. Le nombre de chiffres interceptés est inexact. ce qui entraîne des caractères tronqués. La solution est d'utiliser la fonction mb_substr.
Recommandé : "Tutoriel vidéo PHP"
php résout le problème de l'interception des chaînes tronquées
Problème
Dans le développement quotidien, la fonction d'interception de chaîne est souvent utilisée. La fonction couramment utilisée est substr(). Voici un exemple :
<?php $rest = substr ("abcdef", 1); // returns "bcdef" $rest = substr ("abcdef", 1, 3); // returns "bcd" ?>
Utiliser. Lorsque la fonction substr rencontre des caractères chinois, il est facile de provoquer des caractères tronqués. En effet, dans le codage chinois UTF-8, chaque caractère chinois occupe 3 octets, tandis que le GB2312 occupe 2 octets et l'anglais occupe 1 octet. Le nombre de chiffres interceptés est inexact. substr() "scie" brusquement un caractère chinois en deux moitiés. , provoquant le regroupement des caractères déconnectés pour former un seul mot, de sorte que des caractères chinois tronqués PHP apparaissent.
Solution
Vous pouvez utiliser la fonction mb_substr(). Voici un exemple :
echo mb_substr("php中文字符encode",0,4,"utf-8");
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!