解决mantis(1.1.8)存入mysql数据库中文为乱码问题
上一篇 /
下一篇 2012-06-27 11:36:03
/ 心情: 高兴
/ 置顶(1)
/ 个人分类:mantis
问题描述:首次安装对于mantis(1.1.8)表和字段的的默认字符集设置了latin1,导致存入的中文是乱码,因为前端的展示没有任何影响就放之任之。结果在与testlink结合时问题出现了:testlink关联的bug标题的展示是乱码。
解决方法:
第一步:修改数据库的字符集,将以前存储的中文乱码转化为utf8,使其正常显示。
1、手工将相应的表及字段的字符集改成utf-8
2、执行C:\xampp\mysql\bin>mysqldump
--default-character-set latin1 -uroot -proot --database mantis > c:/dump.sql导出数据脚本
3、将/*!40101 SET
NAMES latin1 */;改成/*!40101 SET NAMESutf8*/;
4、执行此脚本。
5、现在几个表看看,以前中文乱码现在都已经正常显示了,但是使用mantis看可就是一堆乱码,别急我们还需要第二步。
第二步:解决mantis(1.1.8)存入数据库中文乱码的问题。
修改core/database_api.php文件,在db_query方法中,增加两句:
$g_db->Execute("SET NAMES
UTF8");或者$g_db->Execute("SET NAMES GBK");
在我的环境试验后用的gbk
function db_query( $p_query, $p_limit = -1,
$p_offset = -1 ) {
global
$g_queries_array, $g_db;
$t_start
= microtime_float();
if
( ( $p_limit != -1 ) || ( $p_offset != -1 ) ) {
$g_db->Execute("SET NAMES gbk");
$t_result
= $g_db->SelectLimit( $p_query, $p_limit, $p_offset );
}
else {
$g_db->Execute("SET NAMES gbk");
$t_result
= $g_db->Execute( $p_query );
}
收藏
举报
TAG: