2011-04-27
最近在用sqlite做一些小东西,所以需要找个好用的sqlite管理工具,桌面版的找了一堆,比如sqlite spy、sqlite admin、sqlite developer等等,这些桌面软件要么缺少中文版、要么功能太简陋、要么操作很别扭,总之我都不满意,虽然之前在firefox下用过一个用于sqlite管理的插件,各方面都还过得去,可我现在主要使用chrome浏览器,不可能为了管理sqlite特意再开个firefox。绕了一圈我又重新拿起了原本用过的PHP版的SqliteManager(还有款桌面工具也叫这个名字,不过它们的雷同实属巧合),它和所有PHP人都熟悉的PHPMyAdmin非常类似,不需要浪费你哪怕一分钟的时间去上手,打开就会用,也有多语言支持——看来还是PHP人最了解PHP人需要什么样的工具啊。

然而使用SqliteManager时我遇到了一个不大不小的问题:将utf-8编码的内容存入sqlite后,SqliteManager却浏览不到数据;存入英文或gb2312编码的内容就可以浏览。我一度以为sqlite对utf8编码的处理有什么特殊之处,可从未听到类似的说法。我用PHP再将存入的UTF8数据读取后输出,嘿,这数据分明好好的存在sqlite之中了。再看看SqliteManager的网页源码,真相大白,原来选择了SqliteManager的界面语言为简体中文时,网页编码就是gb2312,当然不能显示utf8的内容了。

怎么解决问题呢,打开SqliteManager的源代码草草看了下,觉得还算清晰,决定自己动手来修改一下SqliteManager的代码来解决问题。

1.打开 lang/simplified_chinese.inc.php 文件,第18行,在数组末尾增加一个元素“14=>"UTF8简中”,修改如下:
$langueTranslated = array(	1=>"法语", 2=>"英语", 3=>"波兰语", 
                                                        4=>"德语", 5=>"倭语", 6=>"意大利语", 
                                                        7=>"克罗地亚语", 8=>"巴西葡萄牙语", 9=>"荷兰语", 
                                                        10=>"西班牙语", 11=>"丹麦语",12=>"简体中文",13=>"繁体中文",14=>"UTF8简中");

保存。其他语言文件依次进行相同的修改。

2.将 lang/simplified_chinese.inc.php 文件在原目录下复制一份,命名为 utf8_simplified_chinese.inc.php ,第8行修改为:
$charset = 'utf-8';

选择utf-8编码进行保存。

3.打开 include/defined.inc.php 文件,第37行,数据末尾增加一个元素“14=>'utf8_simplified_chinese'“,修改如下:

$availableLangue = array(	1=>'french', 2=>'english', 3=>'polish',
                                4=>'german', 5=>'japanese', 6=>'italian',
                                7=>'croatian', 8=>'brazilian_portuguese', 9=>'dutch',
                                10=>'spanish', 11=>'danish', 12=>'traditional_chinese',
                                13=>'simplified_chinese',14=>'utf8_simplified_chinese');

保存文件,修改完成。刷新SqliteManager页面,界面语言选择”UTF8简中“,再去浏览存有utf8内容的数据表,嘿嘿,一切正常了。
本博客文章非特别注明均属原创,如需转载请保留本博客地址:http://dao.daimaku.com
您的大名:
电子邮箱:
验证码: