Entries tagged as debug
[LAMP] DotProject 1.0.2-1 Linux中甘特图中文显示成乱码的问题解决方案 Wed, Feb 23. 2005
呵呵,好久没有写技术文章了。今天开始恢复吧。
从星期开始这一个月我的任务是修改 dotProject 以适应公司的应用,哈哈,可以正大光明的玩偶最喜欢的 PHP 了,开心啊。
第一个任务就是修改里面项目甘特图中中文乱码的问题。
原始的效果如下:
其中的乱码应该是“测试任务”
明显的 PHP 的 GD 库对中文支持的 bug,呵呵。上网搜索解决方法,在一个台湾网站上找到解决方法,根据和中文版的对应,修改方法如下:
- 找到 Linux 下存放字体的路径,我的系统是 /usr/X11R6/lib/X11/fonts/,然后找到 c:\window\fonts\,拷贝 sinsum.ttc 到这个目录下并且改名为 simsun.ttf。
- 修改 dotProject/lib/jpgraph/src/jpgraph.php。
L 27,把原来的 修改为
L176,在 后面增加一行
L1786,
- function TTF() {
- $this->style_names=array(FS_NORMAL=>'normal', FS_BOLD=>'bold', FS_ITALIC=>'italic', FS_BOLDITALIC=>'bolditalic');
- // File names for available fonts
- FF_COURIER => array(FS_NORMAL=>'cour', FS_BOLD=>'courbd', FS_ITALIC=>'couri', FS_BOLDITALIC=>'courbi' ),
- FF_GEORGIA => array(FS_NORMAL=>'georgia', FS_BOLD=>'georgiab', FS_ITALIC=>'georgiai', FS_BOLDITALIC=>'' ),
- FF_TREBUCHE => array(FS_NORMAL=>'trebuc', FS_BOLD=>'trebucbd', FS_ITALIC=>'trebucit', FS_BOLDITALIC=>'trebucbi' ),
- FF_VERDANA => array(FS_NORMAL=>'verdana', FS_BOLD=>'verdanab', FS_ITALIC=>'verdanai', FS_BOLDITALIC=>'' ),
- FF_TIMES => array(FS_NORMAL=>'times', FS_BOLD=>'timesbd', FS_ITALIC=>'timesi', FS_BOLDITALIC=>'timesbi' ),
- FF_ARIAL => array(FS_NORMAL=>'arial', FS_BOLD=>'arialbd', FS_ITALIC=>'ariali', FS_BOLDITALIC=>'arialbi' )
- );
- }
修改为
- function TTF() {
- $this->style_names=array(FS_NORMAL=>'normal', FS_BOLD=>'bold', FS_ITALIC=>'italic', FS_BOLDITALIC=>'bolditalic');
- // File names for available fonts
- FF_COURIER => array(FS_NORMAL=>'cour', FS_BOLD=>'courbd', FS_ITALIC=>'couri', FS_BOLDITALIC=>'courbi' ),
- FF_GEORGIA => array(FS_NORMAL=>'georgia', FS_BOLD=>'georgiab', FS_ITALIC=>'georgiai', FS_BOLDITALIC=>'' ),
- FF_TREBUCHE =>array(FS_NORMAL=>'trebuc', FS_BOLD=>'trebucbd', FS_ITALIC=>'trebucit', FS_BOLDITALIC=>'trebucbi' ),
- FF_VERDANA => array(FS_NORMAL=>'verdana', FS_BOLD=>'verdanab', FS_ITALIC=>'verdanai', FS_BOLDITALIC=>'' ),
- FF_TIMES => array(FS_NORMAL=>'times', FS_BOLD=>'timesbd', FS_ITALIC=>'timesi', FS_BOLDITALIC=>'timesbi' ),
- FF_ARIAL => array(FS_NORMAL=>'arial', FS_BOLD=>'arialbd', FS_ITALIC=>'ariali', FS_BOLDITALIC=>'arialbi' ),
- FF_SIMSUN => array(FS_NORMAL=>'simsun', FS_BOLD=>'simsun', FS_ITALIC=>'simsun', FS_BOLDITALIC=>'simsun' )
- );
- }
- 修改 dotProject/lib/jpgraph/src/jpgraph_gantt.php。
L413,把var $iFFamily=FF_FONT1,$iFStyle=FS_NORMAL,$iFSize=10;修改为
var $iFFamily=FF_SIMSUN,$iFStyle=FS_NORMAL,$iFSize=10;
L429,把$this->iText = $aTxt;修改为 - 修改 dotProject/modules/tasks/gantt.php。
L201,把$name = strlen( utf8_decode($a["task_name"]) ) > 25 ? substr( utf8_decode($a["task_name"]), 0, 22 ).'...' : utf8_decode($a["task_name"]) ;修改为
完成,刷新页面,结果如下:
一切OK。
开始看了那些大陆的帖子,都是讲在 Windows 下怎么处理的,只要把 FF_FONT 相关改成 FF_SIMSUN 就行了,那些台湾的帖子, 只说到第 3 步就说 OK 了,后来想想,估计他们用的都是 big5 编码的关系。我们都是 GB2312。
然后再一个俄文站点上找到第4步的修改方法,成功~
哈哈
[LAMP] OSC admin_level_1.2 bug Tue, Feb 1. 2005
hoho,早春二月,天气不错~放假终于有盼头了~。
发现 OSC 的 admin_level_1.2 的一个 bug。在 password_forgotten.php 的程序中,先执行忘记密码发送程序,然后才包含语言文件,导致发送出去的信件内容全是常量!
修改方法:把
放到
下面就行了~hoho
[JAVA] JasperReport 在 Linux 下面报 X11 的错误 Mon, Oct 11. 2004
今天把 SCP 系统转移到了 Linux 下面。报表引擎出现了问题:
具体表现是,运行报表引擎程序运行正常,但是 IE 里面显示一下错误:
java.lang.InternalError: Can't connect to X11 window server using 'app:0,0' as the value of the DISPLAY variable.
刷新后出现一下错误:
java.lang.NoClassDefFoundError
开始以为是找不到类的问题(不过居然找不到 Java 的标准类,汗-_-!),修改了 CLASSPATH、JAVA_HOME,解压缩 jar 包,把我认为的可能和这个相关的设置全部修改了一遍,但是问题依旧。
但是注意到最开始报错的是和 X11 相关的的部分,开始考虑从这个地方下手了。首先修改 DISPLAY 的环境变量,失败。
然后查资料得知,java-awt/swing组件需要本地的x-server,但是服务器上都是 SSH 控制,根本没有安装本地的x-server。解决方法如下:
对于 Java 1.4以上,启动java时加上 -Djava.awt.headless=true 的参数。对于 Java 1.4 以前,下载 xvfb 或者其他的虚拟 x-window 软件,再在 Java 运行环境里的 DISPLAY 作相应改变。
对于 Resin,具体的修改办法是,修改 httpd.sh 文件,把其中的 args= 行修改为 args=-Djava.awt.headless=true。
然后重新启动 HTTP 服务器,一切OK~


