GeoServer 中文乱码解决:Ubuntu 下安装中文字体并修改 SLD 字体
·
问题背景
在 GeoServer 中使用 SLD 样式渲染中文标注时,如果样式里指定的字体(例如 SimSun)在服务器上并不存在,中文就会显示为方块或乱码。Ubuntu 服务器默认通常不安装中文字体,因此需要先安装字体,再让 GeoServer 使用正确的字体名称。
针对 Ubuntu 的解决步骤
1. 安装中文字体(文泉驿)
在终端执行以下命令,安装开源且兼容性好的文泉驿字体:
sudo apt update
sudo apt install -y fonts-wqy-microhei fonts-wqy-zenhei
2. 刷新字体缓存
安装后让系统识别新字体:
sudo fc-cache -fv
可以用下面的命令确认是否列出了中文字体:
fc-list :lang=zh
3. 修改 SLD 中的字体名称(关键)
你原来的 SLD 里写的是 SimSun,但 Ubuntu 上通常没有这个字体。请将 SLD 中 <CssParameter name="font-family"> 的值改为刚刚安装的字体名,例如:
<CssParameter name="font-family">WenQuanYi Micro Hei</CssParameter>
4. 重启 GeoServer
让 Java 重新加载字体列表。如果你是用 Tomcat 部署的,重启 Tomcat 即可。
小结
核心思路是:先让操作系统具备中文字体,再让 SLD 中的 font-family 与系统实际字体名保持一致,最后重启服务使 Java 重新加载字体。三步缺一不可,其中字体名称的匹配往往是最容易被忽略的关键点。
openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构
更多推荐



所有评论(0)