阿拉伯语标签在 Geoserver 中显示不正确
Arabic labels do not display correctly in Geoserver
我安装了带有 Tomcat 的地理服务器,但文本标签显示不正确。我在哪里可以在 geosever 中设置阿拉伯语编码?
标签在 QGIS 中显示良好,但是当我在地理服务器中发布它时,我遇到了这个问题。
]1
The shape file
这是 SLD :
<?xml version="1.0" encoding="UTF-8"?>
<sld:StyledLayerDescriptor xmlns="http://www.opengis.net/sld" xmlns:sld="http://www.opengis.net/sld" xmlns:ogc="http://www.opengis.net/ogc" xmlns:gml="http://www.opengis.net/gml" version="1.0.0">
<sld:UserLayer>
<sld:LayerFeatureConstraints>
<sld:FeatureTypeConstraint/>
</sld:LayerFeatureConstraints>
<sld:UserStyle>
<sld:Name>sea</sld:Name>
<sld:Title/>
<sld:IsDefault>1</sld:IsDefault>
<sld:FeatureTypeStyle>
<sld:Name>group 0</sld:Name>
<sld:FeatureTypeName>Feature</sld:FeatureTypeName>
<sld:SemanticTypeIdentifier>generic:geometry</sld:SemanticTypeIdentifier>
<sld:SemanticTypeIdentifier>simple</sld:SemanticTypeIdentifier>
<sld:Rule>
<sld:Name>default rule</sld:Name>
<sld:PolygonSymbolizer>
<sld:Fill>
<sld:CssParameter name="fill">#1B9E77</sld:CssParameter>
<sld:CssParameter name="fill-opacity">0.5</sld:CssParameter>
</sld:Fill>
<sld:Stroke>
<sld:CssParameter name="stroke">#1B9E77</sld:CssParameter>
</sld:Stroke>
</sld:PolygonSymbolizer>
<sld:TextSymbolizer>
<sld:Label>
<ogc:PropertyName>ARABIC</ogc:PropertyName>
</sld:Label>
<sld:Font>
<sld:CssParameter name="font-family">Arial</sld:CssParameter>
<sld:CssParameter name="font-size">12.0</sld:CssParameter>
<sld:CssParameter name="font-style">normal</sld:CssParameter>
<sld:CssParameter name="font-weight">bold</sld:CssParameter>
</sld:Font>
<sld:LabelPlacement>
<sld:PointPlacement>
<sld:AnchorPoint>
<sld:AnchorPointX>0.5</sld:AnchorPointX>
<sld:AnchorPointY>0.5</sld:AnchorPointY>
</sld:AnchorPoint>
</sld:PointPlacement>
</sld:LabelPlacement>
<sld:Fill>
<sld:CssParameter name="fill">#000000</sld:CssParameter>
</sld:Fill>
<sld:VendorOption name="spaceAround">2</sld:VendorOption>
</sld:TextSymbolizer>
</sld:Rule>
</sld:FeatureTypeStyle>
</sld:UserStyle>
</sld:UserLayer>
</sld:StyledLayerDescriptor>
最常见的问题是你没有设置字符编码,查看商店页面:
根据我的测试数据,我通过 "windows-1250"
的设置得到了这个
切换到(在我的情况下)正确的 "UTF-8" 给出了这个,这更好。
最后使用 "better" 字体而不是 Arial (Trocchi) 来填充中文和阿拉伯字符。
更新
因此,尝试使用您的 shapefile 和 SLD 并使用谷歌搜索 "windows arabic character set" 让我将 Shapefile 数据存储区 DBF 字符集设置为 "Windows-1256",这似乎可行。
我安装了带有 Tomcat 的地理服务器,但文本标签显示不正确。我在哪里可以在 geosever 中设置阿拉伯语编码? 标签在 QGIS 中显示良好,但是当我在地理服务器中发布它时,我遇到了这个问题。
The shape file 这是 SLD :
<?xml version="1.0" encoding="UTF-8"?>
<sld:StyledLayerDescriptor xmlns="http://www.opengis.net/sld" xmlns:sld="http://www.opengis.net/sld" xmlns:ogc="http://www.opengis.net/ogc" xmlns:gml="http://www.opengis.net/gml" version="1.0.0">
<sld:UserLayer>
<sld:LayerFeatureConstraints>
<sld:FeatureTypeConstraint/>
</sld:LayerFeatureConstraints>
<sld:UserStyle>
<sld:Name>sea</sld:Name>
<sld:Title/>
<sld:IsDefault>1</sld:IsDefault>
<sld:FeatureTypeStyle>
<sld:Name>group 0</sld:Name>
<sld:FeatureTypeName>Feature</sld:FeatureTypeName>
<sld:SemanticTypeIdentifier>generic:geometry</sld:SemanticTypeIdentifier>
<sld:SemanticTypeIdentifier>simple</sld:SemanticTypeIdentifier>
<sld:Rule>
<sld:Name>default rule</sld:Name>
<sld:PolygonSymbolizer>
<sld:Fill>
<sld:CssParameter name="fill">#1B9E77</sld:CssParameter>
<sld:CssParameter name="fill-opacity">0.5</sld:CssParameter>
</sld:Fill>
<sld:Stroke>
<sld:CssParameter name="stroke">#1B9E77</sld:CssParameter>
</sld:Stroke>
</sld:PolygonSymbolizer>
<sld:TextSymbolizer>
<sld:Label>
<ogc:PropertyName>ARABIC</ogc:PropertyName>
</sld:Label>
<sld:Font>
<sld:CssParameter name="font-family">Arial</sld:CssParameter>
<sld:CssParameter name="font-size">12.0</sld:CssParameter>
<sld:CssParameter name="font-style">normal</sld:CssParameter>
<sld:CssParameter name="font-weight">bold</sld:CssParameter>
</sld:Font>
<sld:LabelPlacement>
<sld:PointPlacement>
<sld:AnchorPoint>
<sld:AnchorPointX>0.5</sld:AnchorPointX>
<sld:AnchorPointY>0.5</sld:AnchorPointY>
</sld:AnchorPoint>
</sld:PointPlacement>
</sld:LabelPlacement>
<sld:Fill>
<sld:CssParameter name="fill">#000000</sld:CssParameter>
</sld:Fill>
<sld:VendorOption name="spaceAround">2</sld:VendorOption>
</sld:TextSymbolizer>
</sld:Rule>
</sld:FeatureTypeStyle>
</sld:UserStyle>
</sld:UserLayer>
</sld:StyledLayerDescriptor>
最常见的问题是你没有设置字符编码,查看商店页面:
根据我的测试数据,我通过 "windows-1250"
的设置得到了这个切换到(在我的情况下)正确的 "UTF-8" 给出了这个,这更好。
最后使用 "better" 字体而不是 Arial (Trocchi) 来填充中文和阿拉伯字符。
更新
因此,尝试使用您的 shapefile 和 SLD 并使用谷歌搜索 "windows arabic character set" 让我将 Shapefile 数据存储区 DBF 字符集设置为 "Windows-1256",这似乎可行。