Home >Database >Mysql Tutorial >MYSQL数据库使用UTF-8中文编码乱码的解决办法_MySQL

MYSQL数据库使用UTF-8中文编码乱码的解决办法_MySQL

WBOY
WBOYOriginal
2016-05-30 17:10:211103browse

1.用phpmyadmin创建数据库和数据表
创建数据库的时候,请将“整理”设置为:“utf8_general_ci”
或执行语句:

代码如下:

CREATE DATABASE `dbname` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci; 


创建数据表的时候:如果是该字段是存放中文的话,则需要将“整理”设置为:“utf8_general_ci”,
如果该字段是存放英文或数字的话,默认就可以了。
相应的SQL语句,例如:

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

2.用PHP读写数据库
在连接数据库之后:

代码如下:

$connection = mysql_connect($host_name, $host_user, $host_pass); 


加入两行:

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

就可以正常的读写MYSQL数据库了。
用的appserv-win32-2.5.10做的环境,装这个包的时候用默认的utf8编码。
在写数据库连接文件时,写成:

$conn = mysql_connect("$host","$user","$password"); 
mysql_query("SET NAMES 'UTF8'"); 
mysql_select_db("$database",$conn); 

然后在做页面时,注意这句:

代码如下:

 


这样不管输入数据库的中文,还是页面显示,就都正常了。
在DW CS4版里,默认生成的也是utf8页面。
同样的,如果一开始写数据库连接文件时写成:

mysql_query("SET NAMES 'GBK'"); 

那页面也要相应变成:

代码如下:

 


总结,最后主要是页面编码要统一就可以很方便的解决乱码问题,特别是在mysql_query()这个set names的设置必须和页面及数据库编码统计一就可以了。

希望这两篇关于UTF-8中文编码乱码的文章,能够更好地帮助大家解决这类问题,希望大家喜欢。

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