php substr function has garbled characters because of Chinese UTF-8 encoding. Each Chinese character occupies 3 bytes, while GB2312 occupies 2 bytes, and English occupies 1 byte. The intercepted number of digits is inaccurate, resulting in garbled characters. The solution is The way is to use the mb_substr function.
Recommended: "PHP Video Tutorial"
php solves the problem of intercepting garbled strings
Question
In daily development, the function of string interception is often used. The commonly used function is substr(). The following is an example:
<?php $rest = substr ("abcdef", 1); // returns "bcdef" $rest = substr ("abcdef", 1, 3); // returns "bcd" ?>
Use When the substr function encounters Chinese characters, it is easy to cause garbled characters. This is because in Chinese UTF-8 encoding, each Chinese character occupies 3 bytes, while GB2312 occupies 2 bytes, and English occupies 1 byte. The number of intercepted digits is inaccurate. substr() abruptly "saws" a Chinese character into Two halves, causing the disconnected characters to be pulled together to form one word, so PHP substr Chinese garbled characters appear.
Solution
You can use the mb_substr() function. Here is an example:
echo mb_substr("php中文字符encode",0,4,"utf-8");
The above is the detailed content of How to solve the substr php garbled problem. For more information, please follow other related articles on the PHP Chinese website!