I am creating some new style with Postman. The main problem is that the new style was created with Unicode problem. It means I am seeing the new style has some character that are not Unicode.
URL : http://localhost:8090/geoserver/rest/workspaces/webgis/styles
HTTP Post
<?xml version="1.0" encoding="UTF-8"?>
<StyledLayerDescriptor version="1.0.0" xmlns="http://www.opengis.net/sld" xmlns:ogc="http://www.opengis.net/ogc"
xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.opengis.net/sld http://schemas.opengis.net/sld/1.0.0/StyledLayerDescriptor.xsd">
<NamedLayer>
<Name>export_output8464daf0723</Name>
<UserStyle>
<Title>export_output8464daf071</Title>
<Name>export_output8464daf0732</Name>
<FeatureTypeStyle>
<Rule>
<Name>export_output8464daf071_site_name_1</Name>
<Title>export_output8464daf071_site_name_1_تپه قورچی</Title>
<ogc:Filter>
<ogc:PropertyIsEqualTo>
<ogc:PropertyName>site_name</ogc:PropertyName>
<ogc:Literal>تست</ogc:Literal>
</ogc:PropertyIsEqualTo>
</ogc:Filter>
<PointSymbolizer>
<Graphic>
<Mark>
<WellKnownName>circle</WellKnownName>
<Fill>
<CssParameter name="fill">#bd8321</CssParameter>
</Fill>
</Mark>
<Size>2</Size>
</Graphic>
</PointSymbolizer>
</Rule>
</FeatureTypeStyle>
</UserStyle>
</NamedLayer>
</StyledLayerDescriptor>
and Content type is :
application/vnd.ogc.sld+xml
Style in GeoServer is :
<?xml version="1.0" encoding="UTF-8"?><sld:StyledLayerDescriptor xmlns="http://www.opengis.net/sld" xmlns:sld="http://www.opengis.net/sld" xmlns:gml="http://www.opengis.net/gml" xmlns:ogc="http://www.opengis.net/ogc" version="1.0.0">
<sld:NamedLayer>
<sld:Name>export_output8464daf0732</sld:Name>
<sld:UserStyle>
<sld:Name>export_output8464daf0732</sld:Name>
<sld:Title>export_output8464daf071</sld:Title>
<sld:FeatureTypeStyle>
<sld:Name>name</sld:Name>
<sld:Rule>
<sld:Name>export_output8464daf071_site_name_1</sld:Name>
<sld:Title>export_output8464daf071_site_name_1_ط·ع3⁄4ط ̧آ3⁄4ط ̧â€، ط ̧â€ڑط ̧ث†ط·آ±ط1†ط؛إ’</sld:Title>
<ogc:Filter>
<ogc:PropertyIsEqualTo>
<ogc:PropertyName>site_name</ogc:PropertyName>
<ogc:Literal>ط·ع3⁄4ط·آ3ط·ع3⁄4</ogc:Literal>
</ogc:PropertyIsEqualTo>
</ogc:Filter>
<sld:PointSymbolizer>
<sld:Graphic>
<sld:Mark>
<sld:WellKnownName>circle</sld:WellKnownName>
<sld:Fill>
<sld:CssParameter name="fill">#bd8321</sld:CssParameter>
</sld:Fill>
</sld:Mark>
<sld:Size>2</sld:Size>
</sld:Graphic>
</sld:PointSymbolizer>
</sld:Rule>
</sld:FeatureTypeStyle>
</sld:UserStyle>
</sld:NamedLayer>
</sld:StyledLayerDescriptor>
-
On my Ubuntu 20.04 box this works fine with curl and both ascii and binary data options. Are you on a windows machine by any chance?Ian Turton– Ian Turton2020年08月12日 08:03:24 +00:00Commented Aug 12, 2020 at 8:03
-
@IanTurton Thank you . Yes it is windows server ...Mostafa Fallah– Mostafa Fallah2020年08月12日 10:45:55 +00:00Commented Aug 12, 2020 at 10:45
-
try "application/vnd.ogc.sld+xml;charset=UTF-8" as the content-typeIan Turton– Ian Turton2020年08月12日 12:57:29 +00:00Commented Aug 12, 2020 at 12:57
-
I did it but the result is same :-(Mostafa Fallah– Mostafa Fallah2020年08月12日 16:07:23 +00:00Commented Aug 12, 2020 at 16:07
1 Answer 1
After a lot of googling , I understood Java on windows does NOT support Unicode output by default. As we know, GeoServer made by JAVA too, so we have to do some stuff for fixing this issue.
1. Add this variable to your System Environment Variable.
JAVA_TOOL_OPTIONS=-Dfile.encoding=UTF-8
2. Open CMD (RUN AS Administrator) and run this command
C:\WINDOWS\system32>chcp 65001
and you will see this message : Active code page: 65001
Point 1 : Do not forget to restart your computer or 1 - close your explorer and open it and then 2 - restart you GeoServer service from Services.
Point 2 : Your XML should be start with :
<?xml version="1.0" encoding="UTF-8"?>
Point 3 : You do not need to add charset=UTF-8 in end of Content-Type. So you can set to :
Content-Type=application/vnd.ogc.sld+xml
Explore related questions
See similar questions with these tags.