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 "<br />";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 "<br />"; }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);