`

PHP连接MYSQL出现乱码的原因与解决方法

阅读更多

解决MySql数据库乱码的一个首要前提是保证 数据库+数据表+前端显示 编码一致,国内项目一般统一设定为GB2312或GBK,而国际化项目则一般使用utf8。

 

另外,字符集设定完毕之后记得重启目标机MySql服务

 

PHP连接MYSQL乱码的原因有很多;


要解决PHP页面乱码,首先就要了解PHP页面乱码的原因

1.架设服务器安装MYSQL时的会让你选择一种编码,如果这种编码与你的PHP网页不一致,可能就会造成乱码
2.在PHPMYADMIN或mysql-front等系统 创建数据库时会让你选择一种编码,如果这种编码与你的PHP网页不一致,也有可能造成PHP页面乱码
3.创建表时会让你选择一种编码,如果这种编码与你的网页编码不一致,也可能造成PHP页面乱码
4.创建表时添加字段是可以选择编码的,如果这种编码与你的网页编码不一致,也可能造成PHP页面乱码
5.用户提交页面的编码与显示数据的页面编码不一致,就肯定会造成PHP页面乱码.
   如用户输入资料的页面是big5码, 显示用户输入的页面却是gb2312,这种100%会造成PHP页面乱码
6.PHP页面字符集不正确
    要注意:
    1.平时你在某些网站看到的文字可能有几种编码, 如你看到一个繁体字,它有可能是big5编码,也有 可能是utf-8编码的,更有可能是gb码的,没错,也就是说有简体编码的繁体字,也有繁体编码的简体字,一定要了解这一点.
   如果你是做一个简体编码的网页,编码定为GB2312,如果有香港和台湾地区的访客提交繁体的信息,就可能会造成乱码,解决方法就是(1)将网站编码设为utf-8,这样可以兼容世界上所有字符, (2)如果网站已经运作了好久,已有很多旧数据,不能再更改简体中文的设定,那么建议将页面的编码设为GBK,
GBK与GB2312的区别就在于:GBK能比GB2312显示更多的字符,要显示简体码的繁体字,就只能用GBK

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

所以,PHP页面乱码的原因无非就是以上几种,知道原因之后,要解决PHP页面乱码的方法也容易多了
我们一一来表达:
1.如果安装mysql的编码已不能更改,很多朋友是购买虚拟主机建立网站,无权更改MYSQL的安装编码,这一关我们可以跳过,因为只要后面的步聚正确,一样能解决乱码问题
2.修改数据库编码,如果是数据库编码不正确: 可以在phpmyadmin 执行如下命令:

use `test`;
ALTER DATABASE `test` DEFAULT CHARACTER SET utf8 COLLATE utf8_bin   
以上命令就是将test数据库的编码设为utf8

3.修改表的编码:ALTER TABLE `category` DEFAULT CHARACTER SET utf8 COLLATE utf8_bin
以上命令就是将一个表category的编码改为utf8

4.修改字段的编码:

ALTER TABLE `test` CHANGE `dd` `dd` VARCHAR( 45 ) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL
以上命令就是将test表中 dd的字段编码改为utf8

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

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

7.在连接数据库的语句中,

mysql_connect('localhost','user','password');
mysql_select_db('my_db');
mysql_query("set names utf8;");    //select 数据库之后加多这一句,也可以设为GBK,GB2312等根据也要设置

为了避免PHP页面乱码的发生,PHP页面开始第一句
header("content-type:text/html; charset=utf-8");
//强行指定页面的编码,以避免乱码

 

注意:按照以上方法修改以后只能保证你新插入的数据不会乱码,举个例:如果你用户已提交的数据是BIG5,你却想通过以上方法改为可以在GB2312的网页正确显示是不可能的, 这种文字内码的变换只能通过另写程序来解决,请WEB745.com其它相关文章

分享到:
评论

相关推荐

    PHP+MySql中文乱码解决办法

    ### PHP+MySQL中文乱码解决办法详解 ...通过以上方法,我们可以有效地解决PHP+MySQL开发过程中出现的中文乱码问题。关键在于确保各个环节的编码设置一致,并针对特定的操作系统进行适当的编码转换处理。

    PHP+MySql中文乱码解决方案

    6. **PHP连接MySQL时指定的编码不正确**:在PHP脚本中连接MySQL时,如果没有正确指定编码,也会引起乱码问题。 #### 三、解决方案 针对以上提到的乱码原因,我们可以通过以下步骤来逐一解决: ##### 1. PHP网页的...

    mysql乱码解决方法

    【MySQL 乱码解决方法】 在使用MySQL数据库与PHP配合开发网站时,有时会遇到乱码问题,这通常是由于字符集设置不一致导致的。以下是一些常用的解决方法: 1. **配置数据库环境**: - 在使用工具如ZendStudio或...

    mysql中文乱码的解决方法

    3. **客户端程序的连线语系设定问题**:例如PHP连接MySQL时使用的字符集设置不当。 针对以上问题,本文将详细介绍如何彻底解决MySQL中的中文乱码问题,并推荐使用`utf8`或`utf8mb4`字符集,因为它们能兼容世界上绝...

    MySQL乱码解决方案数据库乱码

    ### MySQL乱码问题详解与解决方案 #### 一、MySQL乱码背景及原因分析 在处理MySQL数据库时,遇到字符集编码不一致导致的数据乱码问题非常常见。这不仅会影响数据的正确显示,还可能导致数据丢失或损坏。根据提供的...

    php mysql excel 乱码终极处理

    5. **连接数据库时未指定正确的字符集**:在使用PHP连接MySQL数据库时,如果没有指定正确的字符集,也可能会导致乱码问题。 #### 二、解决乱码的方法 针对上述原因,下面提供了一些具体的解决方案: 1. **修改...

    Mysql中文乱码问题完美解决方案

    #### MySQL中文乱码的根本原因及解决方案 ##### 1. MySQL服务端默认字符集设置 - **问题描述**:如果MySQL服务端的默认字符集设置为`latin1`等非Unicode编码,则在存储或检索包含中文数据的记录时可能会出现乱码...

    Mysql中文乱码问题解决方案

    本文将深入探讨MySQL中文乱码问题的原因、解决方法,以及如何在创建数据库和表时避免这类问题。 首先,我们要了解字符集的概念。字符集(Character Set)是计算机系统用来表示文本的一系列符号和编码,例如ASCII、...

    php读取mysql中文数据出现乱码的解决方法

    解决方法:创建数据库的时候,MySQL 字符集选择’UTF8’,MySQL 连接校对选择utf8_general_ci,这样创建的数据库用来存储中文肯定没有问题,否则,你的中文首先在MySQL中就是乱码,更不要期望它会给你在PHP页面中...

    mysql出现中文乱码解决

    MySQL数据库在处理中文字符时,有时会出现中文乱码的问题,这通常是由于字符编码设置不一致导致的。在本文中,我们将深入探讨这个问题,并提供一种解决方案——通过修改配置文件来解决MySQL中文乱码。 首先,我们...

    mysql中文乱码解决

    以上四种方法分别从不同层面解决了MySQL中文乱码的问题,可以根据具体情况选择合适的方法。如果是在开发过程中遇到乱码问题,推荐使用第三种方法,在创建数据库时指定字符集;如果是部署到生产环境中,建议采用第二...

    MySQL 5.0.16乱码问题的解决方法

    MySQL 5.0.16 乱码问题的出现通常是由于字符编码不匹配或配置不当导致的,这可能会影响到数据库中的数据存储和显示。解决这个问题需要理解MySQL的字符集和校对设置,以及如何在不同层面进行配置。以下是一系列详细的...

    让MySql彻底支持中文_解决mysql数据库乱码

    当你通过命令行或编程方式连接MySQL时,需要确保指定正确的字符集: ```bash mysql -u username -p --default-character-set=utf8 ``` 或者在编程连接时,如PHP中设置: ```php $mysqli = new mysqli("localhost", ...

    史上最全的PHP+MySql中文乱码解决方案.pdf

    《PHP+MySQL中文乱码问题全面解析与解决方案》 在编程世界中,中文乱码问题一直是困扰开发者的一大难题,尤其在PHP与MySQL结合的环境中,由于编码不一致,乱码现象更为常见。本文将深入探讨PHP和MySQL中文乱码产生...

    mysql的乱码解决方法.docx

    总的来说,解决MySQL乱码问题的关键在于理解字符集和排序规则的概念,以及它们在整个系统中的作用。正确配置这些设置,确保数据从创建、传输到存储的整个过程都保持一致的编码,可以有效避免乱码的出现。同时,升级...

    史上最全的PHP+MySql中文乱码解决方案.docx

    PHP和MySQL中文乱码问题是一个常见的困扰开发者的问题,...通过以上步骤,大部分PHP与MySQL中文乱码问题都可以得到解决。在实际开发中,遇到乱码问题时,应先检查上述各环节的编码设置,从而找到问题根源并进行修正。

    mysql汉字乱码问题

    5. **客户端配置**:确保连接MySQL的客户端工具(如MySQL Workbench, Navicat等)也使用正确的字符集。这通常在连接设置中进行。 6. **数据导入导出**:在导入或导出数据时,务必确保文件和数据库之间字符集的一致...

    MySql数据库导入乱码

    解决 MySql 数据库导入中文乱码的问题需要正确设置字符集,并在数据库连接文件中指定字符集。只有这样,我们才能正确地导出和导入 MySql 数据库。 在实际操作中,我们需要注意以下几点: 1. 在导出数据库时,需要...

    mysql的乱码解决方法.pdf

    解决MySQL乱码问题通常需要以下几个步骤: 1. **创建数据库时指定字符集和排序规则**: - 对于GBK编码,创建数据库的命令如下: ``` create database test2 DEFAULT CHARACTER SET gbk COLLATE gbk_chinese_ci; ...

    mysql乱码问题解决

    ### MySQL中文乱码问题解析与解决方案 #### 一、乱码原因分析 在MySQL数据库中遇到中文乱码问题,通常可以归结为以下几个方面: 1. **Server本身的设定问题**:比如服务器使用的字符集仍停留在老旧的`latin1`而非...

Global site tag (gtag.js) - Google Analytics