Home > Article > Backend Development > What should I do if the php substr function intercepts Chinese garbled characters?
php The substr function intercepts Chinese characters and produces garbled characters because the substr function treats a UTF-8 Chinese character as 3 bytes. The way to solve the garbled characters is to use the mb_strlen and mb_substr functions instead.
The operating environment of this article: Windows7 system, PHP7.1, Dell G3 computer.
What should I do if the php substr function intercepts Chinese garbled characters?
Solution for intercepting Chinese garbled characters with substr in PHP
Substr is often used to intercept strings in PHP, but when we use it to implement When Chinese characters are intercepted, garbled characters will occur. For example:
<?php $mystring="今天天气真好"; $mysubstring=substr($mystring,0,2); echo $mysubstring; ?>
The output result is �;
Cause analysis: The substr function prototype is: string substr (string $string, int $ start [, int $length ] ), where $length represents the returned byte length, and a Chinese character occupies two bytes. For a UTF-8 Chinese character, it will be treated as 3 bytes.
<?php $length=strlen($mystring);echo $length;//输出结果为18 ?>
That is to say, we can use $length to be 3, which will successfully return the word "Jin". In this case, if Chinese and English are mixed, we need to calculate $length carefully.
So is there a better solution? Php provides additional functions mb_strlen and mb_substr
<?php $length=mb_strlen($mystring); $mysub=mb_substr($mystring,0,4); echo "the length is:$length,","the substr is:$mysub"; ?>
The output result is: the length is: 6, the substr is: today’s weather
The prototype of the mb_strlen function is int mb_strlen(string string_input, string encode); encode defaults to UTF-8, which will count Chinese characters encoded in UTF-8 as a
Note: mb_strlen and mb_substr are not the core functions of PHP. You need to open php.ini before use. extension=php_mbstring.dll
Recommended study: "PHP Video Tutorial"
The above is the detailed content of What should I do if the php substr function intercepts Chinese garbled characters?. For more information, please follow other related articles on the PHP Chinese website!