Reviewboard的中文乱码问题

我是在ubuntu12.0.4 版本下安装的Reviewboard,Reviewboard的安装,安装过程如下:


1、安装easy_install
sudo apt-get install python-setuptools python-dev;

2、安装apache2和mod_python
sudo apt-get install apache2 libapache2-mod-python
sudo a2enmod python /* 修改apache2的配置,让python mod处于enable状态 */

3、安装mysql
sudo apt-get install mysql-server python-mysqldb libmemcache-dev
sudo easy_install http://gijsbert.org/downloads/cmemcache/cmemcache-0.95.tar.bz2

创建数据库、数据库用户for ReviewBoard(这块要注意数据库的字符集设置,默认是UTF-8,如果你要用其他中文字符编码标准,这里就需要显式指定,查查mysql的Manual吧)
mysql -u root -p  /* 用root用户登录 */
mysql> create database reviewboard;
Query OK, 1 row affected (0.00 sec)
mysql> create user 'reviewboard'@'localhost' identified by 'reviewboard';  /* 前一个reviewboard是访问数据库的用户名,后一个reviewboard是密码 */
Query OK, 0 rows affected (0.00 sec)
mysql> grant all on reviewboard.* to 'reviewboard'@'localhost';  /* 前一个reviewboard是数据库的名字,而后一个reviewboard则是访问数据库的用户名 */
Query OK, 0 rows affected (0.00 sec)
mysql> exit

4、安装subversion (目前大多数公司都用subversion)
sudo apt-get install patch subversion python-svn

5、安装reviewboard
sudo easy_install reviewboard

6、创建你的reviewboard站点
sudo rb-site install /var/www/reviewboard   /* 之后会有一系列类似安装向导的步骤,需要你做出选择,尽量选择默认值吧 */
    · Domain = localhost
    · Root Path = /
    · Media URL = media/
    · Database Type = mysql
    · Database Name = reviewboard
    · Database server = localhost
    · Database username = 'reviewboard' 
    · Database password = 'reviewboard' 
    · Cache Type = memcache
    · Memcache Server = memcached://localhost:11211/ 
    · Webserver = apache
    · Python loader = modpython

7、配置站点,启动Apache2
sudo chown -R www-data /var/www/reviewboard/htdocs/media/uploaded /* 让webserver拥有对uploaded目录的修改权限 */
sudo cp /var/www/reviewboard/conf/apache-modpython.conf /etc/apache2/sites-available/reviewboard
sudo a2dissite default
sudo a2ensite reviewboard
sudo /etc/init.d/apache2 restart

在你的浏览器里敲入:http://localhost,ReviewBoard的登录界面就会出现在你的面前。

在安装过程中遇到的问题如下

1、 在安装mysql时需要安装cmemcache-0.95.tar.bz2缓存包,会遇见gcc的编译错误,遇到该问题时,是ubuntu12.0.4自带的gcc编译器版本过高了

换一个版本稍微低一些的gcc编译器版本 gcc4.4即可

2、 安装reviewboard安装包时,你可能会经常出现time out的情况,现在你可以不用考虑别的,是该设置代理的时候了,在网上搜索http代理

sudo -s

export http_proxy=url:port

重新运行 apt-get install reviewboard。 其中可能还会遇见 Error none退出的情况,不妨切换回你的普通用户,继续执行apt-get install reviewboard。

如此反复,一遇到安装不下去的情形就切换用户,直到安装完成。

3、 中文乱码问题解决

当我们安装完reviewboard并配置好之后,create patch,新建一个review请求,如果你的源码是GBK的话,这里你将看到你所review的代码中,中文全部是乱码。这是因为reviewboard采用的utf-8编码,GBK编码的文件自然会乱七八糟了。怎么办呢?

这里你最简单的事情就是首先

(1)关掉 apache

(2)修改源代码

         找到reviewboard的安装目录,在/reviewboard/diffviewer/目录下存在一个diffutils.py脚本。点击你站点中的viewdiff按钮时,就会运行该脚本中的get_chunks函数。在该文件的607行有一个old 和new字符串变量。估计是reviewboard里面所显示的左右对比文件代码,在后面对其进行编码转换,将gbk编码转化为utf-8即可。代码如下

在文件开头到入库 : import chardet

在这里(607之后)加入如下代码:


(3) 重启apache,中文显示出来了,哈哈

         


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值