利用属性值为中文的字段进行图层标注,当数据源是shapefile会在uDig中渲染过程和Geoserver服务发布过程中出现中文乱码问题,而数据源是PostGIS时中文标注正常显示。所以不是必须要用shapefile的话,强烈建议直接使用PostGIS数据源,避免入坑。
一、uDig渲染时出现中文乱码
设置字体为宋体,脚本为“中文GB2312”
应用上面设置后,图层中文标注乱码
查看shapefile cpg文件中的编码格式为UTF-8,与PostGIS中一致,怀疑是uDig显示问题,因为在Geoserver使用上面渲染效果导出的SLD进行WMS发布中文标注正常
二、Geoserver发布服务出现中文乱码
依据Geoserver项目开发_3.栅格切片地图服务发布和Geoserver项目开发_4.基于uDig生成SLD样式渲染文件中介绍步骤进行WMS样式配置及服务发布,图层预览时出现中文标注乱码问题
有些资料提到需将SLD文件中encoding修改为“GBK”或“GB2312”,修改GBK或者GB2312取决于在Geoserver中创建“数据存储”中的“DBF文件的字符集”,两者要保持一致,字体改为相应的中文字体
但按以上修改后,中文标注仍乱码……
经过多次尝试和查看资料,发现问题就出在创建“数据存储”中的“DBF文件的字符集”的设置上。
由于数据源本身编码就是UTF-8,DBF的字符集设置为 UTF-8 即可,无需改为GBK或GB2312等编码格式。 至于SLD文件中编码格式修改与否都没有影响
版权声明:本文为zhangeximu原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。