php向MYSQL插入中文字符,在页面上显示问号,请问phpmyadmin上怎么设置,php需要添加什么代码?

php代码查询前需不需要添加什么
<?php
function doDB()
{
$mysqli = mysqli_connect($dbhost,$dbuser,$dbpass,$dbname);
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n",mysqli_connect_errno());
exit();
}
}
连接数据库并查询:
<?php
include("link.php");
//connect to server and select database
doDB();
//show categories first
$get_cats_sql = "SELECT id, cat_title, cat_desc FROM forum_categories ORDER BY id";
$get_cats_res = mysqli_query($mysqli, $get_cats_sql) ;

mysql连接校对和数据库的表的整理都已改为utf8_unicode_ci,现在就是不知道页面php代码上如何修改

默认编码不一致造成问题
1、数据库创建编码选用一个如gb2312。
2、数据库字符集校对选用一个gb2312,以上两者必须一致。
3、不同编译器或者工具如notepad、vim、editplus,它们默认文件的编码不一致,保存的时候选择相应的字符集保存。
4、页面的环境不一样造成,html中的head中meta中的charset=gb2312即可。
5、浏览器的设置默认编码不一致,有的自动选择,有的默认gb2312,许多页面默认是utf8,造成乱码,php文件采用header('Content-Type: text/html; charset=gb2312');告诉浏览器文本类型是html和字符集是gb2312.,header前面不能有任何输出包括空格,此时可以不使用方法4.
综上所述,乱码的大部分原因。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-09-28
最佳解决方案,网页字符集 与 数据库字符集相同。

如果你网页字符集与数据库字符集不一样,在输出或者保存时注意转换处理。追问

代码我已经贴出了,能不能说的详细点

追答

你页面是什么字符集,你的数据库默认是什么字符集。
如果你知道字符集【例如:utf8】
那么在选择数据库后执行 mysql_query("set names utf8");

追问

数据库字符集是UTF-8 Unicode MySQL 连接校对:utf8_unicode_ci 数据库中表种字段的整理属性也是utf8_unicode_ci 页面的字符集没有设置,也不知道如何设置

追答

你以后用 utf8_general

追问

那页面字符集怎么设置?写在配合我上述php代码的什么位置?

追答

网页页面也要指定字符集

第2个回答  2012-09-29
我不知道你写的mysql_query()是啥意思,一般我里面直接写的发送语句
里面最好是放个变量
e,g $a = 'select id,cat.....';
$b = mysql_query($a);
第3个回答  2012-09-29
应该是数据库表或者是数据库表里面的字段的字符设置的不对,你都改成UTF8就可以了
第4个回答  2012-09-28
数据库里显示的是问号还是乱码?还是正常的?
如果数据库是正常的,页面上显示错误,一定是字符集的问题。追问

phpmyadmin上查看显示正常,网页上是问号。

第5个回答  2012-09-29
表整理改为utf8_general_ci试试,然后把你的PHP输出页面的页面属性改为UTF-8试试,用DW可以改,DW创建的页面默认为GB2312的