黄智勇 发表于 2017-2-28 10:39:46

Geoserver 中文标注显示问题

  极度怀疑自己的RP问题。。。看代码,上面的是中文显示正常的,下面的是中文显示不正常的。几个图层死活不正常,就从正常的里面考了段代码出来,结果就正常了。。。无语ING

Code
====================
<!--正常的-->
      <TextSymbolizer>
          <Label>
            <ogc:PropertyName>NAME</ogc:PropertyName>
          </Label>      
            <Font>
            <CssParameter name="font-family">Times new roman</CssParameter>
            <CssParameter name="font-style">Normal</CssParameter>
            <CssParameter name="font-size">14</CssParameter>
            <CssParameter name="font-weight">bold</CssParameter>
            </Font>
          <Fill>
            <CssParameter name="fill">#9E0000</CssParameter>
            <CssParameter name="fill-opacity">1</CssParameter>
          </Fill>
      </TextSymbolizer>      
=====================
<!--不正常的-->
      <TextSymbolizer>
          <Label>
            <ogc:PropertyName>NAME</ogc:PropertyName>
          </Label>
            <Font>
            <CssParameter name="font-family">Times New Roman</CssParameter>
            <CssParameter name="font-style">Normal</CssParameter>
            <CssParameter name="font-size">14</CssParameter>
            </Font>
          <Fill>
            <CssParameter name="fill">#4C4C4C</CssParameter>
            <CssParameter name="fill-opacity">1</CssParameter>
          </Fill>
      </TextSymbolizer>
        -----------------------------------------------------------------------------------

  另外,tomcat+geoserver配置带中文featuretype出现的问题可以如下解决(Source:http://hi.baidu.com/jmugis/blog/item/cfc92a604b3e1547ebf8f89a.html)
  用geoserver自带的jetty服务器,试用中文图层没有问题,但是移植到tomcat上却一直提示
Could not find layer sh:???????·??这样的错误,可以肯定的是图层已经配置好,问题出在发送中文的图层名过程中出现的编码错误,google了一下关于tomcat编码的问题,得到了解决的方案

设置server.xml文件为
<Connector port="8080" maxHttpHeaderSize="8192"
                maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
                enableLookups="false" redirectPort="8443" acceptCount="100"
                connectionTimeout="20000" disableUploadTimeout="true" URIEncoding='UTF-8'/>
粗体部分是笔者加上的。
这样设置就保证了get数据采用UTF8编码


这里指定了get时候的数据编码。但是,当使用IIS作为webserver转发servlet/jsp请求给Tomcat时候,这个设置却失效了。其实 原因很简单:IIS是通过AJP协议,把请求转发到Tomcat监听的8009端口上的,所以这里针对8080的设置自然就无效了。正确的方法是进行下面 的设置:

<Connector port="8009" enableLookups="false" redirectPort="8443"
debug="0" protocol="AJP/1.3" URIEncoding="UTF-8"/>
页: [1]
查看完整版本: Geoserver 中文标注显示问题