[mw_shl_code=php,true]<?php $con = mysql_connect("localhost","root",""); if (!$con) { die('Could not connect: ' . mysql_error()); } mysql_select_db("chat", $con); $result = mysql_query("SELECT * FROM chat"); while($row = mysql_fetch_array($result)) { echo $row['time'] . " " . $row['neirong']; echo "<br />"; } mysql_close($con); ?>[/mw_shl_code] 输出数据数字和英文没问题,可是中文是??? 该贴已经同步到 yangkeao的微博
修改mysql配置文件my.ini或my.cnf,mysql最好用utf8编码 [mysql] default-character-set=utf8 [mysqld] default-character-set=utf8 default-storage-engine=MyISAM 在[mysqld]下加入: default-collation=utf8_bin init_connect='SET NAMES utf8'
之所以中文会有问题是因为mysql的编码和php的编码不一致导致的,简单来说就是对于同一些二进制字节,GBK编码和UTF-8编码对于这些字节的结束都是不同的。具体编码相关的问题可以google下。 你这边要解决这个问题,有两种方案,一种是让php的编码设置和mysql一致,另一个是php从mysql读出内容后转换成php的编码。一般来说为了程序的通用性,建议采用第二种。 这里假设mysql编码为GBK,php编码为UTF-8,则需要将读出的内容由GBK转换成UTF-8。 php的编码转换一般也有两种方法,这里推荐使用iconv的库。 函数原型是:string iconv ( string $in_charset , string $out_charset , string $str ) 可以详细看下函数的手册还有一些网上其他的例子。