作者ooopooo (欧欧欧批欧欧欧)
看板PHP
标题Re: [请益] 资料库输出是乱码
时间Thu Apr 14 16:30:22 2011
我前镇子也在搞类似的问题
你可以参考看看我的解决方案
首先 我的环境是 apache mysql php (版本略)
先检查appache 跟php是否有编码的问题
我写了:
<?php
echo "测试中文中,例如:张先生 ";
?>
如果显示正常 appache跟php"应该"就没问题了。
再来就是MySQL了
个人不喜欢加一些set char...在我的程式码内(每次都要加很麻烦)
於是请找到你的安装目录MySQL根目录内有个档案my.ini
请将my.ini打开
如果你是官方网站抓的 很有可能chartset是latin1
要修改的地方如下:
[mysql]
default-character-set=utf8
[mysqld]
default-character-set=utf8
最後将MySQL重开。
Try it!
※ 引述《rainyuhtree (ianyu)》之铭言:
: 我在会员中文名字写入资料库时,是正常显示的
: 但当我利用帐号抓取会员中文名字时
: $sql=mysql_query("select * from persondata where memacc='$uracc'");
: while($row=mysql_fetch_array($sql))
: {
: echo "<p>".$row[2]."</p>";
: $_SESSION["usersname"]=$row[2];
: }
: 却无法正常显示,(英文可以)
: 但好像也不是乱码,都会出现???
: 想是我资料库内的名字是『张』,他却跑出『撘?/p>』
: 感觉『p>』就是echo那边的
: 但另一个一样是show出资料库所有资料时
: include ("db.php");
: $sql = "select * from msgarea where reply=0 order by count desc";//之後要
: order by good
: $result = mysql_query($sql);
: while
: (list($no,$name,$subject,$content,$condition,$whichno,$putdate,$page,$type,$count,$good,$soso,$bad)
: =mysql_fetch_row($result))
: {
: echo "<tr><td>".$name;
: echo "<td><a href = detail.php?no=$no>".$subject."</a>";
: echo "<td>".$type;
: echo "<td>".$putdate;
: echo "<td>".$count;
: echo "<td>".$good;
: echo "<td>".$soso;
: echo "<td>".$bad;
: }
: echo "</table>"
: 这一段就可以完整的show资料库内的中文,然後没有乱码
: 我有做的事情是
: 在php里头都有加上
: mysql_query("SET NAMES utf8");
: mysql_query("SET CHARACTER_SET_CLIENT=utf8");
: mysql_query("SET CHARACTER_SET_RESULTS=utf8");
: 在html都有加上
: <meta HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf8">
: 我的资料库是
: MySQL 文字编码: UTF-8 Unicode (utf8)
: MySQL 连线校对:UTF-8 Unicode_ci
: ----------
: 还有想问
: 制作留言板
: 在标题和内文的输入部分
: 都只能打英文才能写入
: 只要是中文就无法写入资料库
: 问题会出在哪里呢
: 我都有按照书本范例做
: -----------
: 还请大家指教指教
: 虽然这已经是老问题了
: 我也有爬过文看过了
: 已经有些部分有解决
: 但这一部分还是有问题
: 谢谢
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 111.83.227.63
※ 编辑: ooopooo 来自: 111.83.227.63 (04/14 16:33)
1F:→ rainyuhtree:谢谢O大的回覆讲解!!谢谢 04/14 22:30