Table of Contents
php page, mysql database converted to utf-8 garbled code, summary of utf-8 encoding issues, mysqlutf-8
Home Backend Development PHP Tutorial PHP page, convert mysql database to utf-8 garbled characters, summary of utf-8 encoding issues, mysqlutf-8_PHP tutorial

PHP page, convert mysql database to utf-8 garbled characters, summary of utf-8 encoding issues, mysqlutf-8_PHP tutorial

Jul 13, 2016 am 09:44 AM
php utf8 Encoding issues

php page, mysql database converted to utf-8 garbled code, summary of utf-8 encoding issues, mysqlutf-8

Example 1:

Converting PHP page to UTF-8 encoding problem

1. Add a line at the beginning of the code: header("Content-Type: text/html;charset=utf-8");

2.PHP file encoding problem. Click the menu of the editor: "File"->"Save As", you can see the encoding of the current file. Make sure the file encoding is: UTF-8. If it is ANSI, the encoding needs to be Change to: UTF-8.

3. PHP file header BOM problem: PHP files must not have BOM tags, otherwise, the session will not be usable and there will be a similar prompt:

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent This is because when executing session_start(), the entire page cannot have output, but Since the BOM tag exists in the previous PHP page, PHP treats the BOM tag as output, so an error occurs! Therefore, the BOM tag must be deleted from the PHP page

How to delete this BOM tag:

1. You can open the file with Dreamweaver and resave it to remove the BOM tag!

2. You can open the file with EditPlus, and in the menu "Preferences"->"File"->"UTF-8 Identity", set it to: "Always delete signature", and then save the file. Remove the BOM tag!

3. UTF-8 encoding problem when PHP saves a file as an attachment: When PHP saves a file as an attachment, the file name must be GB2312 encoded. Otherwise, if there is Chinese in the file name, it will be garbled: If Your PHP itself is a file in UTF-8 encoding format. You need to convert the file name variable from UTF-8 to GB2312: iconv("UTF-8", "GB2312", "$filename");

4. When truncating and displaying the article title, garbled characters or "?" question marks appear:

Generally, when the title of an article is very long, part of the title will be displayed and the title of the article will be truncated. Since a Chinese character in UTF-8 encoding format will occupy 3 characters in width, when the title is intercepted, sometimes only the If the width of a Chinese character is 1 character or 2 characters, if it is not completely intercepted, garbled characters or "?" question marks will appear,

Use the following function to intercept the title and there will be no problem:

function get_brief_str($str, $max_length) { 
  echo strlen($str) . ""; 
  if (strlen($str) > $max_length) { 
    $check_num = 0; 
    for ($i = 0; $i < $max_length; $i++) { 
      if (ord($str[$i]) > 128) 
        $check_num++; 
    } 
    if ($check_num % 3 == 0) 
      $str = substr($str, 0, $max_length) . "..."; 
    else 
      if ($check_num % 3 == 1) 
        $str = substr($str, 0, $max_length +2) . "..."; 
      else 
        if ($check_num % 3 == 2) 
          $str = substr($str, 0, $max_length +1) . "..."; 
  } 
  return $str; 
}
Copy after login

The problem of using UTF-8 encoding in MYSQL database

1. Use phpmyadmin to create the database and data table. When creating the database, please set "Organization" to: "utf8_general_ci" or execute the statement:

CREATE DATABASE `dbname` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
Copy after login

When creating a data table: If the field stores Chinese, you need to set "Organization" to: "utf8_general_ci". If the field stores English or numbers, the default is fine.

Corresponding SQL statement, for example:

CREATE TABLE `test` ( 
`id` INT NOT NULL , 
`name` VARCHAR( 10 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL , 
PRIMARY KEY ( `id` ) 
) ENGINE = MYISAM ;
Copy after login

2. Use PHP to read and write the database

After connecting to the database:

$connection = mysql_connect($host_name, $host_user, $host_pass);
Copy after login

Add two lines:

mysql_query("set character set 'utf8'");//读库 
mysql_query("set names 'utf8'");//写库
Copy after login

You can read and write the MYSQL database normally.

Example 2:

Solution to the utf-8 Chinese garbled problem of php mysql

Summary of questions:

1. The default encoding of mysql database is utf8. If this encoding is inconsistent with your PHP web page, it may cause MYSQL garbled code.

2. When creating a table in MYSQL, you will be asked to choose an encoding. If this encoding is inconsistent with your web page encoding, it may also cause MYSQL garbled code.

3. You can choose the encoding when adding fields when creating a table in MYSQL. If this encoding is inconsistent with the encoding of your web page, it may also cause MYSQL garbled code.

4. The encoding of the page submitted by the user is inconsistent with the encoding of the page displaying the data, which will definitely cause the PHP page to be garbled.

5. If the page where the user inputs information is in big5 code, but the page where the user input is displayed is in gb2312, this will 100% cause the PHP page to be garbled.

6. The character set of the PHP page is incorrect.

7. The encoding specified in the PHP connection MYSQL database statement is incorrect.

Now that we have a clear understanding of the reasons for garbled characters when using mysql php, the solution will not be difficult.

Solutions to different problems:

1. The default encoding of mysql database is utf8. If this encoding is inconsistent with your PHP web page, it may cause MYSQL garbled code.

Modify the database encoding. If the database encoding is incorrect, you can execute the following command in phpmyadmin:

Alter DATABASE 'test' DEFAULT CHARACTER SET utf8 COLLATE utf8_bin
Copy after login

The above command is to set the encoding of the test database to utf8.

2. When creating a table in MYSQL, you will be asked to choose an encoding. If this encoding is inconsistent with your web page encoding, it may also cause MYSQL garbled code.

Modify the encoding of the table:

Alter TABLE 'category' DEFAULT CHARACTER SET utf8 COLLATE utf8_bin
Copy after login

The above command is to change the encoding of a table category to utf8.

3. You can choose the encoding when adding fields when creating a table in MYSQL. If this encoding is inconsistent with the encoding of your web page, it may also cause MYSQL garbled code.

Modify the encoding of the field:

Alter TABLE 'test' CHANGE 'dd' 'dd' VARCHAR( 45 ) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL
Copy after login

The above command is to change the field encoding of dd in the test table to utf8.

4. The encoding of the page submitted by the user is inconsistent with the encoding of the page displaying the data, which will definitely cause the PHP page to be garbled.

如果是这种情况容易解决,只需检查下页面,修改源文件的charset即可.

5.如用户输入资料的页面是big5码, 显示用户输入的页面却是gb2312,这种100%会造成PHP页面乱码.

这种情况也是修改页面charset即可.

6.PHP页面字符集不正确.

为了避免PHP页面乱码的发生,PHP页面开始第一句

header("content-type:text/html; charset=utf-8");
Copy after login

//强行指定页面的编码,以避免乱码

7.PHP连接MYSQL数据库语句指定的编码不正确.

在连接数据库的语句中.

mysql_connect('localhost','user','password');
mysql_select_db('my_db');
mysql_query("set names 'utf8'"); //select 数据库之后加多这一句
Copy after login

以上内容就是本文给大家介绍php页面,mysql数据库转utf-8乱码,utf-8编码问题总结,希望大家喜欢。

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/1049119.htmlTechArticlephp页面,mysql数据库转utf-8乱码,utf-8编码问题总结,mysqlutf-8 示例一: PHP页面转UTF-8编码问题 1.在代码开始出加入一行: header("Content-Type: tex...
Statement of this Website
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

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

PHP 8.4 Installation and Upgrade guide for Ubuntu and Debian PHP 8.4 Installation and Upgrade guide for Ubuntu and Debian Dec 24, 2024 pm 04:42 PM

PHP 8.4 brings several new features, security improvements, and performance improvements with healthy amounts of feature deprecations and removals. This guide explains how to install PHP 8.4 or upgrade to PHP 8.4 on Ubuntu, Debian, or their derivati

How To Set Up Visual Studio Code (VS Code) for PHP Development How To Set Up Visual Studio Code (VS Code) for PHP Development Dec 20, 2024 am 11:31 AM

Visual Studio Code, also known as VS Code, is a free source code editor — or integrated development environment (IDE) — available for all major operating systems. With a large collection of extensions for many programming languages, VS Code can be c

7 PHP Functions I Regret I Didn't Know Before 7 PHP Functions I Regret I Didn't Know Before Nov 13, 2024 am 09:42 AM

If you are an experienced PHP developer, you might have the feeling that you’ve been there and done that already.You have developed a significant number of applications, debugged millions of lines of code, and tweaked a bunch of scripts to achieve op

Explain JSON Web Tokens (JWT) and their use case in PHP APIs. Explain JSON Web Tokens (JWT) and their use case in PHP APIs. Apr 05, 2025 am 12:04 AM

JWT is an open standard based on JSON, used to securely transmit information between parties, mainly for identity authentication and information exchange. 1. JWT consists of three parts: Header, Payload and Signature. 2. The working principle of JWT includes three steps: generating JWT, verifying JWT and parsing Payload. 3. When using JWT for authentication in PHP, JWT can be generated and verified, and user role and permission information can be included in advanced usage. 4. Common errors include signature verification failure, token expiration, and payload oversized. Debugging skills include using debugging tools and logging. 5. Performance optimization and best practices include using appropriate signature algorithms, setting validity periods reasonably,

How do you parse and process HTML/XML in PHP? How do you parse and process HTML/XML in PHP? Feb 07, 2025 am 11:57 AM

This tutorial demonstrates how to efficiently process XML documents using PHP. XML (eXtensible Markup Language) is a versatile text-based markup language designed for both human readability and machine parsing. It's commonly used for data storage an

PHP Program to Count Vowels in a String PHP Program to Count Vowels in a String Feb 07, 2025 pm 12:12 PM

A string is a sequence of characters, including letters, numbers, and symbols. This tutorial will learn how to calculate the number of vowels in a given string in PHP using different methods. The vowels in English are a, e, i, o, u, and they can be uppercase or lowercase. What is a vowel? Vowels are alphabetic characters that represent a specific pronunciation. There are five vowels in English, including uppercase and lowercase: a, e, i, o, u Example 1 Input: String = "Tutorialspoint" Output: 6 explain The vowels in the string "Tutorialspoint" are u, o, i, a, o, i. There are 6 yuan in total

Explain late static binding in PHP (static::). Explain late static binding in PHP (static::). Apr 03, 2025 am 12:04 AM

Static binding (static::) implements late static binding (LSB) in PHP, allowing calling classes to be referenced in static contexts rather than defining classes. 1) The parsing process is performed at runtime, 2) Look up the call class in the inheritance relationship, 3) It may bring performance overhead.

What are PHP magic methods (__construct, __destruct, __call, __get, __set, etc.) and provide use cases? What are PHP magic methods (__construct, __destruct, __call, __get, __set, etc.) and provide use cases? Apr 03, 2025 am 12:03 AM

What are the magic methods of PHP? PHP's magic methods include: 1.\_\_construct, used to initialize objects; 2.\_\_destruct, used to clean up resources; 3.\_\_call, handle non-existent method calls; 4.\_\_get, implement dynamic attribute access; 5.\_\_set, implement dynamic attribute settings. These methods are automatically called in certain situations, improving code flexibility and efficiency.

See all articles