PHP+MySQL存储数据常见中文乱码问题小结

以下的文章主要介绍的是MySQL
存储过程中的乱码的实际解决方案,我们大家都知道存储过程有问题的话,一般表现在无法对数据进行正确查询。以下就是文章的具体内容介绍,望你会有所收获。

以下的文章主要向大家介绍的是c#
连接MySQL中文乱码问题的正确解决方法,一开始不太清楚为什么整个数据库的默认配置都为utf-8,而且有些人在使用http协议传送utf-8的汉字时,是正确的执行了的。

本文实例总结了PHP+MySQL存储数据常见中文乱码问题。分享给大家供大家参考,具体如下:

数据表和字段都是 utf8 存储的中文内容。在连接数据库后也使用 SET NAMES
utf8; 设置了编码。但是在MySQL
存储过程中无法查询中文内容的字段。由于一些逻辑处理的原因,存储过程使用了游标,同时定义了一些局部变量。

于是找 set names XX命令的解释,发现一篇说的比较明白的,转载了。

PHP+MySQL出现中文乱码的常见原因:

CREATE PROCEDURE `PROC_FOOBAR`(id INTEGER)  BEGIN  DECLARE user_id VARCHAR(32) ;  

近来接受BBT的培训,做一个投票系统。系统代码倒不是很难,但是我的时间主要花费在了研究字符集和编码上面。MySQL和Apache两个系统的编码字符集)问题让我费劲脑筋,吃尽苦头。

1.
MYSQL数据库的编码是utf8,与PHP网页的编码格式不一致,就会造成MYSQL中的中文乱码。

省略代码若干

网上对这些问题的解决比较零散,比较片面,大部分是提供解决方法,却不说为什么。于是我将这几天收获总结一下,避免后来者再走弯路。这篇文章对PHP编写有一点帮助看完你就知道,怎样让你的PHP程序在大部分空间提供商的服务器里显示正常),但是更多帮助在于网络服务器的架设和设置。

2.
使用MYSQL中创建表、或者选择字段时设置的类型不是utf8,而网页编码不是utf8,也可能造成MYSQL中文乱码.

END 

先说MySQL的字符集问题。Windows下可通过修改my.ini内的[code]# CLIENT
SECTION

  1. PHP页面的字符集与数据库的编码不一致。

user_id 在代码中参与了一个 查询

[mysql]   default-character-set=utf8   # SERVER SECTION   [mysqld]   

4.
PHP连接MYSQL数据库,操作是设定的语句指定的编码和页面编码,PHP页面编码不一致。

SELECT * FROM `table1` WHERE `UID` = user_id 

default-character-set=utf8[/code]这两个字段来更改数据库的默认字符集。第一个是客户端默认的字符集,第二个是服务器端默认的字符集。假设我们把两个都设为utf8,然后在MySQL
Command Line Client里面输入“show variebles
like“character_set_%”;”,可看到如下字符:

  1. 用户提交的HTML页面编码,和显示数据的页面编码不一致
    ,就肯定会造成PHP页面乱码.

在存储过程中输出 user_id 发现英文内容正常,但是中文内容乱码。

character_set_client latin1   character_set_connection latin1   character_set_database utf8   character_set_results latin1   character_set_server utf8   character_set_system utf8  

解决中文乱码问题的方法: