最近在修改minipage的时候碰上点小问题,研究好久终于得到解决,留此文做笔记.
mangos数据库的默认编码是UTF-8(因为游戏本身就采用此编码),但是在minipage的查询语句中没有考虑到非英语语种用户的字符格式问题,所以PHP网页上全部显示的都是????问号.
解决PHP网页在查询UTF-8数据库的乱码方法:
1.
//###########################第一种##########################
//get name from realmlist.name
function get_realm_name(){
global $lang_global, $dbhost, $dbuser, $dbpass, $realm_db, $realm_id;
mysql_connect($dbhost,$dbuser,$dbpass) or die(error($lang_global[’err_sql_conn_db’]));
mysql_select_db($realm_db) or die(error(”{$lang_global[’err_sql_open_db’]} (’$realm_db’)”));
mysql_query(”SET NAMES ‘GBK‘”) or die(error(mysql_error()));
$query = “Select name FROM `realmlist` Where id = ‘$realm_id’”;
$result = mysql_query($query) or die(error(mysql_error()));
$realm_name = mysql_result($result, 0);
mysql_close();
return($realm_name);
}
当PHP网页代码为蓝色这种格式的时候,只要在相应位置插入红色语句就可以了,GBK为编码格式,依具体情况,可改成你需要的编码格式.
2.
//########################第二种#######################
//get name from realmlist.name
function get_realm_name(){
global $lang_global, $dbhost, $dbuser, $dbpass, $realm_db, $realm_id;
$mysql_0 = new MySQL;
$link = $mysql_0->connect($dbhost, $dbuser, $dbpass, $realm_db);
$result = $mysql_0->query(”Select name FROM `realmlist` Where id = ‘$realm_id’”);
$realm_name = $mysql_0->result($result, 0);
$mysql_0->close();
return($realm_name);
}
如果网页代码是这种形式呢?
简单,只要在”$link = ….” 这一行下面加入这行语句就可以了:
$mysql_0->query(”SET NAMES ‘GBK’”);
|