Geoserver项目开发_5.shapefile数据源在uDig渲染和Geoserver WMS发布出现中文乱码

利用属性值为中文的字段进行图层标注,当数据源是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版权协议,转载请附上原文出处链接和本声明。