解决mantis(1.1.8)存入mysql数据库中文为乱码问题

上一篇 / 下一篇  2012-06-27 11:36:03 / 心情: 高兴 / 置顶(1) / 个人分类:mantis

问题描述:首次安装对于mantis1.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看可就是一堆乱码,别急我们还需要第二步。

 

第二步:解决mantis1.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:

 

评分:0

我来说两句

日历

« 2024-05-02  
   1234
567891011
12131415161718
19202122232425
262728293031 

数据统计

  • 访问量: 15182
  • 日志数: 12
  • 建立时间: 2012-06-27
  • 更新时间: 2013-07-26

RSS订阅

Open Toolbar