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

How to delete garbled characters in php

藏色散人
藏色散人Original
2021-03-31 09:21:322828browse

How to delete the garbled part in php: 1. Set the encoding of the php file itself to match the encoding of the web page; 2. Set the encoding of PHP and the database to be consistent; 3. Modify the encoding when calling the PHP function.

How to delete garbled characters in php

The operating environment of this article: Windows7 system, PHP7.1 version, DELL G3 computer

php Chinese delete the garbled part, PHP Chinese Solutions to garbled codes

1. The first is the encoding of the PHP web page

1. The encoding of the PHP file itself and the encoding of the web page should match

a. If you want to use gb2312 encoding, then PHP must output the header: header("Content- Type: text/html; charset=gb2312"), add a static page, the encoding format of all files is ANSI, you can open it with Notepad, save as, select the encoding as ANSI, and overwrite the source file.

b. If you want to use utf-8 encoding, then php should output the header: header("Content-Type: text/html; charset=utf-8"), add the static page, and the encoding format of all files is utf-8. Saving as utf-8 may be a bit troublesome. Generally, utf-8 files will have BOM at the beginning. If you use session, there will be problems. You can use editplus to save. In editplus, go to Tools->Parameter Selection->File-> UTF-8 signature, select Always delete, then save to remove the BOM information.

2.php itself is not Unicode, all substr and other functions must be changed to mb_substr (mbstring extension needs to be installed); or use iconv to transcode.

two. Data interaction between PHP and Mysql

The encoding of PHP and the database should be consistent

1. Modify the mysql configuration file my.ini or my.cnf. It is best to use utf8 encoding for mysql

[mysql]
default-character-set=utf8
[mysqld]
default-character-set=utf8
default-storage-engine=MyISAM

Add under [mysqld]:

default-collation=utf8_bin
init_connect='SET NAMES utf8'

2. Add mysql_query("set names 'coding'"); before the PHP program that needs to perform database operations. The coding is consistent with the PHP coding. If the PHP coding is gb2312, then the mysql encoding is gb2312. If it is utf-8, then the mysql encoding is utf8, so that there will be no garbled characters when inserting or retrieving data

[Recommended learning: PHP video tutorial]

three. PHP is related to the operating system

The encoding of Windows and Linux is different. In the Windows environment, if the parameters are utf-8 encoded when calling PHP functions, errors will occur, such as move_uploaded_file(), filesize() , readfile(), etc. These functions are often used when processing uploads and downloads. The following error may occur when calling:

Warning: move_uploaded_file()[function.move-uploaded-file]:failed to open stream:

The above is the detailed content of How to delete garbled characters 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