
yangkeao
提问,求回答,有关于Mysql数据库乱码的问题
>>
完整版
[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的微博
0o团子o0
叫柚子的真多
KNel
Zhuogu
风音洛洛
jimsshom
之所以中文会有问题是因为
展开Biu
之所以中文会有问题是因为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 )
[查看全文]
yangkeao
jimsshom