Mapserver中文显示问题集思学院的网友birdsky提供的线索: MapServer i18n Project 这个也许是侧底解决Mapserver中文显示问题的办法。 6月30日添加: 在上周末,同事火柴的协助下,对上述方法进行了测试,以下是结论: 1、下载了MapServer 4.0.1和4.2两个版本的source包,经实验,Patch都可以正常使用。 2、在Map文件中需要注释的层(LAYLER)或者图例(LEGEND)的LABEL 标签内,需要增加“ENCODING”进行补充描述,: 例如: 图例(LEGEND)显示中文 LAYER NAME "river"
ENDDATA hyd1_4l STATUS default TYPE LINE CLASS NAME "一级河流" ENDCOLOR 0 0 255 LEGEND KEYSIZE 18 12
ENDSTATUS ON LABEL TYPE TRUETYPE ENDFONT song COLOR 0 0 89 SIZE 9 ENCODING GB18030 3、编码和说明文字采用的编码相匹配既可,如GB2312,GB18010,UTF-8等,。 如果您的mapserver没有打Patch,可以采用如下方法: 让MapServer/Linux正常显示汉字04-05-02, 21:49 发表于集思学院 在Linux下安装MapServer成功后,发现输出的图片中中文总是不正常。于是找了一些大虾米们探讨问题可能出现在什么地方,然后进行一个个实验。 可能1、服务器Locale设置问题? 同事火柴提示是否是Locale设置的问题,在他的帮助下,检查了Locale设置,经检查服务器上的Locale设置的语言环境(GB18010)完全正确。(后来的实验证明与此无关。如果解决了i18n的支持问题,也许就相关了) 可能2、于是怀疑字体不正确? 经同事蓝牙帮助,得到Linux可以免费使用的中文字体,以及被验证过的可以在Linux下使用的Windows下的中文字体,中文依然不能正常显示。回去仔细检查了UMN上的Font设置的说明,证明设置方面没有错误。 这是我试验的几种字体,后来证明都能正常使用。 gkai00mp.ttf Linux下字体 SIMFANG.TTF Linux下字体 simsun.ttc Windows 下字体 实验过程中检查到一个现象:在图片缩放过程中曾经显示过一个古怪的中文字出来,说明程序能输出双字节的内容来。 回想起前一阵子做的一些Linux下的帮助文件,汉化完后不能正常显示,需要转成utf-8格式才行,忽然想到会不会是这个问题?? 可能3、需要将说有的说明由GB转为UTF-8格式? 首先找了个mapinfo的mif数据文件,将mid说明文件转存为utf-8格式,然后再用转换工具转成shp文件,上传,修改mapfile,上传,切到浏览器,刷新,OK!中文显示正常了! 原来问题的答案是中文说明需用TrueType?字体和UTF-8格式!成功了!我太高兴了,时间是5/2/2004 6:29 PM,我要记下这一刻:-) 下面再解决图例的中文显示: 经过一阵子摸索,总结如下: 1、 将mapfile转为UTF-8格式; 2、 LEGEND对象中的LABEL对象需要用TrueType?输出。 3、 如果不想显示某层的图例,将该层的CLASS的NAME属性删除。 上述实验是在REDHAT LINUX7.2 + MapServer 4.02环境下进行的。 |
||
评论/留言 [隐藏留言板]
添加留言:
|