mysql查询数据库,如果数据库里的字段的值是中文,就会出现乱码,怎么解决呢?看下面的讲解
写一个test.php的文档,代码如下所示,
打开mysql的界面,新建一个xml的数据库,再建一个student的数据表,字段值和记录如下图所示,
打开谷歌浏览器,运行test.php文档。运行结果是下图:
看到了吧,出现乱码了,怎么办呢?在代码里加一句代码,看截图里红色箭头的指示,
再次运行test.php,看截图,乱码消失了,
相应的代码如下:<?php header("Content-Type:text/html; charset=utf-8");/***************查询数据*******************/$con = mysql_connect("localhost","root","wancxh99");if (!$con) { // echo "链接失败"; die('Could not connect: ' . mysql_error()); }else{ // echo "链接成功"; } echo "
";mysql_query("set names 'utf8'");//进出查询编码不产生乱码mysql_select_db("xml", $con);$result = mysql_query("SELECT * FROM student");while($row = mysql_fetch_array($result)) { echo $row['id'] . " " . $row['sex']. " " . $row['name']; echo "
"; }mysql_close($con);?> 导出的SQL如下-- phpMyAdmin SQL Dump-- version 2.10.3-- http://www.phpmyadmin.net-- -- 主机: localhost-- 生成日期: 2014 年 09 月 12 日 05:25-- 服务器版本: 5.0.51-- PHP 版本: 5.2.6SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";-- -- 数据库: `xml`-- -- ---------------------------------------------------------- -- 表的结构 `student`-- CREATE TABLE `student` ( `id` int(11) NOT NULL auto_increment, `name` varchar(50) NOT NULL, `sex` varchar(10) NOT NULL, `age` smallint(3) NOT NULL default '0', PRIMARY KEY (`id`)) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=5 ;-- -- 导出表中的数据 `student`-- INSERT INTO `student` VALUES (1, 'XUZIRUI', 'male', 19);INSERT INTO `student` VALUES (2, '李莫愁', '女', 19);INSERT INTO `student` VALUES (3, '李明博', '女', 55);INSERT INTO `student` VALUES (4, '李普曼', '男', 59);