Home >Backend Development >PHP Problem >How to solve the substr php garbled problem

How to solve the substr php garbled problem

藏色散人
藏色散人Original
2020-11-01 15:02:022502browse

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.

How to solve the substr php garbled problem

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!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn