GeoServer style中文亂碼解決方法


在說明這個問題之前,有三點需要明確:

一是創建New style時,網頁中文本框內的內容才是最終會應用到GeoServer的sld內容,這與本地sld文件沒有關系。

二是xml的encoding定義的編碼不一定和文件編碼(文件的字符編碼)一致,詳情可以參考:

XML亂碼問題和encoding的理解

2345截圖20200321143633

三是我使用的geoserver版本為2.16.2,因此該亂碼問題的解決思路可能不適用於某些低版本的geoserver。據我所知,低版本geoserver(例如2.8.2),不論使用什么方法向網頁中輸入sld,只要sld文本中存在中文就不行,估計低版本是對中文的支持性不太好,因此如果遇到類似情況,建議使用較高版本。

亂碼問題的解決思路主要有如下三點:

1.sld通過文件上傳時出現亂碼,說明sld文件的字符編碼方式不為UTF-8。因為GeoServer工作區的字符集默認為UTF-8,上傳文件的字符編碼應當與它保持一致。

此時上傳的sld內容已經亂碼(即GeoServer接受到的文本已經亂碼不能識別了,跟現在的encoding和字符編碼都沒多大關系了),修改本地sld文件並不能改變網頁文本框的內容。

此時,需要將本地的sld文件字符編碼設置成UTF-8再進行一次上傳,直到文本框內容不出現亂碼。

或者,更推薦的是,直接復制sld文檔內容到網頁文本框內,這樣不會出現亂碼。因為在不明確編碼方式時,默認假定xml內容采用UTF-8編碼。

Snipaste_2020-03-21_10-46-16
2.shp數據中含有中文字符時,需要在數據源中將DBF字符集編碼設置為GBK或GB2312
Snipaste_2020-03-21_11-08-58
3.sld文件中含有中文字符時,編碼方式encoding應該設置為GBK或GB2312,與數據源的編碼方式對應。
Snipaste_2020-03-21_14-23-17


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM