GREATWALL : MapServeri18n

首页 :: 索引 :: 修订历史 :: 最新评论 :: 待建页面 :: 登陆/注册 你好,3.83.87.94

Mapserver中文显示问题



External Link集思学院的网友birdsky提供的线索:
External LinkMapServer i18n Project
这个也许是侧底解决Mapserver中文显示问题的办法

6月30日添加:
在上周末,同事火柴的协助下,对上述方法进行了测试,以下是结论:
1、下载了MapServer 4.0.1和4.2两个版本的source包,经实验,Patch都可以正常使用

2、在Map文件中需要注释的层(LAYLER)或者图例(LEGEND)的LABEL 标签内,需要增加“ENCODING”进行补充描述,:
例如:
图例(LEGEND)显示中文
LAYER
NAME "river"
DATA hyd1_4l
STATUS default
TYPE LINE
CLASS
NAME "一级河流"
COLOR 0 0 255
END
END

LEGEND
KEYSIZE 18 12
STATUS ON
LABEL
TYPE TRUETYPE
FONT song
COLOR 0 0 89
SIZE 9
ENCODING GB18030
END
END

3、编码和说明文字采用的编码相匹配既可,如GB2312,GB18010,UTF-8等,。




如果您的mapserver没有打Patch,可以采用如下方法


MapServer/Linux正常显示汉字



04-05-02, 21:49 发表于External Link集思学院

  在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环境下进行的。

 
当前页面没有留言. [显示留言板]