Home >Backend Development >PHP Problem >How to solve garbled characters displayed in php

How to solve garbled characters displayed in php

PHPz
PHPzOriginal
2023-04-19 10:06:511265browse

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.

  1. Modify the PHP configuration file

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.

  1. Set HTTP header information

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.

  1. Database encoding settings

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.

  1. Database field encoding setting

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.

  1. PHP functions to handle garbled characters

PHP also provides some commonly used functions to deal with Chinese garbled characters, such as:

  • iconv() Function: Implement encoding conversion between strings.
$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.

  • mb_convert_encoding() function: You can convert a string from one encoding to another 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!

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