Home >Backend Development >PHP Problem >How to solve garbled characters displayed in php
In the process of using PHP to develop websites, we often encounter Chinese garbled characters. Chinese garbled characters will not only affect the aesthetics of the website, but also affect the user experience, so it needs to be resolved in time. This article will introduce the solution to PHP displaying garbled characters.
In the PHP configuration file, the default character set must be set to UTF-8. Open the php.ini file and find the following content:
;*** Charset *** ; default_charset ; Default character set for new content types ; Default Value: "" ;mime_magic.debug = Off
Change "default_charset" to "UTF-8":
;*** Charset *** ; default_charset ; Default character set for new content types ; Default Value: "" default_charset = "UTF-8" ;mime_magic.debug = Off
After completion, save and restart the apache service.
PHP also provides a function to set HTTP header information to solve the problem of Chinese garbled characters. Add the following code at the beginning of the PHP file:
header("Content-type: text/html; charset=utf-8");
The function of this line of code is to set the HTTP header information and tell the browser that the encoding format of the current page is UTF-8.
When using PHP to connect to the database, you also need to set the character set of the database to UTF-8 to avoid garbled characters when reading data. You can add the following code to the code for establishing a database connection:
mysqli_set_charset($conn,"utf8");
where $conn is the variable name for connecting to the database.
If the created database table contains Chinese fields, it is also necessary to set the field encoding in the database table to UTF-8. You can add the following code to the SQL statement that creates the database table:
CREATE TABLE `table_name` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(50) COLLATE utf8_unicode_ci NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
Among them, the encoding format of the name field is utf8_unicode_ci.
PHP also provides some commonly used functions to deal with Chinese garbled characters, such as:
$new_str = iconv("gb2312","utf-8", $str);
The function of this line of code is to convert $Str from GB2312 encoding to UTF-8 encoding.
$new_str = mb_convert_encoding($str,"utf-8","gb2312");
The function of this line of code is to convert $Str from GB2312 encoding to UTF-8 encoding.
To sum up, there is more than one way to solve the problem of Chinese garbled characters in PHP. You need to choose based on the specific situation to achieve the best solution. At the same time, you also need to pay attention to code writing specifications and character set settings in daily development to prevent the occurrence of Chinese garbled characters.
The above is the detailed content of How to solve garbled characters displayed in php. For more information, please follow other related articles on the PHP Chinese website!