[Geoserver-users] Character encoding probelm in WFS requests

Hi,

I have a probelm with character encoding in WFS requests using GeoServer 2.0.2.

I use GetFeature to get information of a point whose ‘NAME’ property likes a certain value. Problem arises when the layer name and the value contains CHINESE characters. The debug infomation is shown as follows:

INFO [org.geoserver.wfs] -
Request: getServiceInfo
27 Nov 18:41:16 DEBUG [org.geotools.xml] - schemaLocation found: http://www.opengis.net/wfs http://schemas.opengis.net/wfs/1.1.0/wfs.xsd
27 Nov 18:41:16 DEBUG [org.geotools.xml] - Found override for http://www.opengis.net/wfs: http://schemas.opengis.net/wfs/1.1.0/wfs.xsd ==> jar:file:/home/luojiesi/GeoServer/webapps/geoserver/WEB-INF/lib/wfs-2.0.2.jar!/org/geoserver/wfs/xml/v1_1_0/wfs.xsd
27 Nov 18:41:16 DEBUG [org.geotools.data.shapefile] - Read lock: file:/home/luojiesi/GeoServer/data_dir/data/nansong/南宋1208年/1208_州府级驻点.qix by org.geotools.data.shapefile.indexed.IndexedShapefileDataStore: 1208_州府级驻点
27 Nov 18:41:16 DEBUG [org.geotools.data.shapefile] - Read lock: file:/home/luojiesi/GeoServer/data_dir/data/nansong/南宋1208年/1208_州府级驻点.shp by org.geotools.data.shapefile.indexed.IndexedShapefileDataStore: 1208_州府级驻点
27 Nov 18:41:16 DEBUG [org.geotools.data.shapefile] - Read lock: file:/home/luojiesi/GeoServer/data_dir/data/nansong/南宋1208年/1208_州府级驻点.shp by org.geotools.data.shapefile.indexed.IndexedShapefileDataStore: 1208_州府级驻点
27 Nov 18:41:16 DEBUG [org.geotools.data.shapefile] - Read lock: file:/home/luojiesi/GeoServer/data_dir/data/nansong/南宋1208年/1208_州府级驻点.qix by org.geotools.data.shapefile.indexed.IndexedShapefileDataStore: 1208_州府级驻点
27 Nov 18:41:16 DEBUG [org.geotools.data.shapefile] - Read lock: file:/home/luojiesi/GeoServer/data_dir/data/nansong/南宋1208年/1208_州府级驻点.qix by org.geotools.data.shapefile.indexed.IndexedShapefileDataStore: 1208_州府级驻点
27 Nov 18:41:16 TRACE [org.geotools.data.shapefile] - IndexFile has been opened. Number open: 1
27 Nov 18:41:16 DEBUG [org.geotools.data.shapefile] - Read lock: file:/home/luojiesi/GeoServer/data_dir/data/nansong/南宋1208年/1208_州府级驻点.shx by org.geotools.data.shapefile.shp.IndexFile
27 Nov 18:41:16 TRACE [org.geotools.data.shapefile] - Memory mapping file…
27 Nov 18:41:16 TRACE [org.geotools.index.quadtree] - QuadTree opened
27 Nov 18:41:16 DEBUG [org.geotools.data.shapefile] - Read lock: file:/home/luojiesi/GeoServer/data_dir/data/nansong/南宋1208年/1208_州府级驻点.qix by org.geotools.data.shapefile.indexed.IndexedShapefileDataStore: 1208_州府级驻点
27 Nov 18:41:16 DEBUG [org.geotools.data.shapefile] - Read lock: file:/home/luojiesi/GeoServer/data_dir/data/nansong/南宋1208年/1208_州府级驻点.shx by org.geotools.data.shapefile.shp.IndexFile
27 Nov 18:41:16 TRACE [org.geotools.data.shapefile] - IndexFile has been closed. Number open: 0
27 Nov 18:41:16 DEBUG [org.geotools.data.shapefile] - Read lock: file:/home/luojiesi/GeoServer/data_dir/data/nansong/南宋1208年/1208_州府级驻点.dbf by org.geotools.data.shapefile.dbf.IndexedDbaseFileReader
27 Nov 18:41:16 TRACE [org.geotools.data.shapefile] - Dbase File Reader has been opened. Number open: 1
27 Nov 18:41:16 DEBUG [org.geotools.data.shapefile] - Read lock: file:/home/luojiesi/GeoServer/data_dir/data/nansong/南宋1208年/1208_州府级驻点.shp by org.geotools.data.shapefile.shp.ShapefileReader
27 Nov 18:41:16 TRACE [org.geotools.data.shapefile] - Shapefile Reader has been opened. Number open: 1
27 Nov 18:41:16 TRACE [org.geotools.data.shapefile] - IndexFile has been opened. Number open: 1
27 Nov 18:41:16 DEBUG [org.geotools.data.shapefile] - Read lock: file:/home/luojiesi/GeoServer/data_dir/data/nansong/南宋1208年/1208_州府级驻点.shx by org.geotools.data.shapefile.shp.IndexFile
27 Nov 18:41:16 TRACE [org.geotools.data.shapefile] - Memory mapping file…
27 Nov 18:41:16 DEBUG [org.geotools.data.shapefile] - Read lock: file:/home/luojiesi/GeoServer/data_dir/data/nansong/南宋1208年/1208_州府级驻点.fix by org.geotools.data.shapefile.indexed.IndexedShapefileDataStore: 1208_州府级驻点
27 Nov 18:41:16 DEBUG [org.geotools.data.shapefile] - Read lock: file:/home/luojiesi/GeoServer/data_dir/data/nansong/南宋1208年/1208_州府级驻点.shp by org.geotools.data.shapefile.indexed.IndexedShapefileDataStore: 1208_州府级驻点
27 Nov 18:41:16 DEBUG [org.geotools.data.shapefile] - Read lock: file:/home/luojiesi/GeoServer/data_dir/data/nansong/南宋1208年/1208_州府级驻点.shp by org.geotools.data.shapefile.indexed.IndexedShapefileDataStore: 1208_州府级驻点
27 Nov 18:41:16 DEBUG [org.geotools.data.shapefile] - Read lock: file:/home/luojiesi/GeoServer/data_dir/data/nansong/南宋1208年/1208_州府级驻点.fix by org.geotools.data.shapefile.indexed.IndexedShapefileDataStore: 1208_州府级驻点
27 Nov 18:41:16 DEBUG [org.geotools.data.shapefile] - Read lock: file:/home/luojiesi/GeoServer/data_dir/data/nansong/南宋1208年/1208_州府级驻点.fix by org.geotools.data.shapefile.indexed.IndexedFidReader
27 Nov 18:41:16 TRACE [org.geotools.data.shapefile] - IndexedFidReader has been opened. Number open: 1
27 Nov 18:41:16 DEBUG [org.geotools.core] - wildcard * single .
27 Nov 18:41:16 DEBUG [org.geotools.core] - escape ! esc ! esc == \ false
27 Nov 18:41:16 DEBUG [org.geotools.core] - tmp = looking at 永
27 Nov 18:41:16 DEBUG [org.geotools.core] - tmp = 永 looking at 州
27 Nov 18:41:16 DEBUG [org.geotools.core] - final pattern 永州
27 Nov 18:41:16 DEBUG [org.geotools.data.shapefile] - Read lock: file:/home/luojiesi/GeoServer/data_dir/data/nansong/南宋1208年/1208_州府级驻点.shp by org.geotools.data.shapefile.shp.ShapefileReader
27 Nov 18:41:16 TRACE [org.geotools.data.shapefile] - Shapefile Reader has been closed. Number open: 0
27 Nov 18:41:16 DEBUG [org.geotools.data.shapefile] - Read lock: file:/home/luojiesi/GeoServer/data_dir/data/nansong/南宋1208年/1208_州府级驻点.shx by org.geotools.data.shapefile.shp.IndexFile
27 Nov 18:41:16 TRACE [org.geotools.data.shapefile] - IndexFile has been closed. Number open: 0
27 Nov 18:41:16 DEBUG [org.geotools.data.shapefile] - Read lock: file:/home/luojiesi/GeoServer/data_dir/data/nansong/南宋1208年/1208_州府级驻点.dbf by org.geotools.data.shapefile.dbf.IndexedDbaseFileReader
27 Nov 18:41:16 TRACE [org.geotools.data.shapefile] - Dbase File Reader has been closed. Number open: 0
27 Nov 18:41:16 DEBUG [org.geotools.data.shapefile] - Read lock: file:/home/luojiesi/GeoServer/data_dir/data/nansong/南宋1208年/1208_州府级驻点.fix by org.geotools.data.shapefile.indexed.IndexedFidReader
27 Nov 18:41:16 TRACE [org.geotools.data.shapefile] - IndexedFidReader has been closed. Number open: 0
27 Nov 18:41:16 INFO [org.geoserver.wfs] -
Request: getFeature
handle = null
service = WFS
version = 1.1.0
baseUrl = http://10.15.69.77:8888/geoserver/
providedVersion = null
query = [net.opengis.wfs.impl.QueryTypeImpl@anonymised.com (group: null, propertyName: null, function: null, filter: [[ NAME_CH is like 永州 ] AND [ the_geom bbox POLYGON ((67.363189603321 12.443257476878, 67.363189603321 49.016742523122, 145.58981039668 49.016742523122, 145.58981039668 12.443257476878, 67.363189603321 12.443257476878)) ]], sortBy: null, featureVersion: null, handle: null, srsName: EPSG:4326, typeName: {[http://www.cadal.org/nansong}1208_州府级驻点])]
maxFeatures = null
outputFormat = text/xml; subtype=gml/3.1.1
resultType = results
traverseXlinkDepth = null
traverseXlinkExpiry = null
formatOptions = {}
27 Nov 18:41:16 DEBUG [org.geotools.data.shapefile] - Read lock: file:/home/luojiesi/GeoServer/data_dir/data/nansong/南宋1208年/1208_州府级驻点.qix by org.geotools.data.shapefile.indexed.IndexedShapefileDataStore: 1208_州府级驻点
27 Nov 18:41:16 DEBUG [org.geotools.data.shapefile] - Read lock: file:/home/luojiesi/GeoServer/data_dir/data/nansong/南宋1208年/1208_州府级驻点.shp by org.geotools.data.shapefile.indexed.IndexedShapefileDataStore: 1208_州府级驻点
27 Nov 18:41:16 DEBUG [org.geotools.data.shapefile] - Read lock: file:/home/luojiesi/GeoServer/data_dir/data/nansong/南宋1208年/1208_州府级驻点.shp by org.geotools.data.shapefile.indexed.IndexedShapefileDataStore: 1208_州府级驻点
27 Nov 18:41:16 DEBUG [org.geotools.data.shapefile] - Read lock: file:/home/luojiesi/GeoServer/data_dir/data/nansong/南宋1208年/1208_州府级驻点.qix by org.geotools.data.shapefile.indexed.IndexedShapefileDataStore: 1208_州府级驻点
27 Nov 18:41:16 DEBUG [org.geotools.data.shapefile] - Read lock: file:/home/luojiesi/GeoServer/data_dir/data/nansong/南宋1208年/1208_州府级驻点.qix by org.geotools.data.shapefile.indexed.IndexedShapefileDataStore: 1208_州府级驻点
27 Nov 18:41:16 TRACE [org.geotools.data.shapefile] - IndexFile has been opened. Number open: 1
27 Nov 18:41:16 DEBUG [org.geotools.data.shapefile] - Read lock: file:/home/luojiesi/GeoServer/data_dir/data/nansong/南宋1208年/1208_州府级驻点.shx by org.geotools.data.shapefile.shp.IndexFile
27 Nov 18:41:16 TRACE [org.geotools.data.shapefile] - Memory mapping file…
27 Nov 18:41:16 TRACE [org.geotools.index.quadtree] - QuadTree opened
27 Nov 18:41:16 DEBUG [org.geotools.data.shapefile] - Read lock: file:/home/luojiesi/GeoServer/data_dir/data/nansong/南宋1208年/1208_州府级驻点.qix by org.geotools.data.shapefile.indexed.IndexedShapefileDataStore: 1208_州府级驻点
27 Nov 18:41:16 DEBUG [org.geotools.data.shapefile] - Read lock: file:/home/luojiesi/GeoServer/data_dir/data/nansong/南宋1208年/1208_州府级驻点.shx by org.geotools.data.shapefile.shp.IndexFile
27 Nov 18:41:16 TRACE [org.geotools.data.shapefile] - IndexFile has been closed. Number open: 0
27 Nov 18:41:16 DEBUG [org.geotools.data.shapefile] - Read lock: file:/home/luojiesi/GeoServer/data_dir/data/nansong/南宋1208年/1208_州府级驻点.dbf by org.geotools.data.shapefile.dbf.IndexedDbaseFileReader
27 Nov 18:41:16 TRACE [org.geotools.data.shapefile] - Dbase File Reader has been opened. Number open: 1
27 Nov 18:41:16 DEBUG [org.geotools.data.shapefile] - Read lock: file:/home/luojiesi/GeoServer/data_dir/data/nansong/南宋1208年/1208_州府级驻点.shp by org.geotools.data.shapefile.shp.ShapefileReader
27 Nov 18:41:16 TRACE [org.geotools.data.shapefile] - Shapefile Reader has been opened. Number open: 1
27 Nov 18:41:16 TRACE [org.geotools.data.shapefile] - IndexFile has been opened. Number open: 1
27 Nov 18:41:16 DEBUG [org.geotools.data.shapefile] - Read lock: file:/home/luojiesi/GeoServer/data_dir/data/nansong/南宋1208年/1208_州府级驻点.shx by org.geotools.data.shapefile.shp.IndexFile
27 Nov 18:41:16 TRACE [org.geotools.data.shapefile] - Memory mapping file…
27 Nov 18:41:16 DEBUG [org.geotools.data.shapefile] - Read lock: file:/home/luojiesi/GeoServer/data_dir/data/nansong/南宋1208年/1208_州府级驻点.fix by org.geotools.data.shapefile.indexed.IndexedShapefileDataStore: 1208_州府级驻点
27 Nov 18:41:16 DEBUG [org.geotools.data.shapefile] - Read lock: file:/home/luojiesi/GeoServer/data_dir/data/nansong/南宋1208年/1208_州府级驻点.shp by org.geotools.data.shapefile.indexed.IndexedShapefileDataStore: 1208_州府级驻点
27 Nov 18:41:16 DEBUG [org.geotools.data.shapefile] - Read lock: file:/home/luojiesi/GeoServer/data_dir/data/nansong/南宋1208年/1208_州府级驻点.shp by org.geotools.data.shapefile.indexed.IndexedShapefileDataStore: 1208_州府级驻点
27 Nov 18:41:16 DEBUG [org.geotools.data.shapefile] - Read lock: file:/home/luojiesi/GeoServer/data_dir/data/nansong/南宋1208年/1208_州府级驻点.fix by org.geotools.data.shapefile.indexed.IndexedShapefileDataStore: 1208_州府级驻点
27 Nov 18:41:16 DEBUG [org.geotools.data.shapefile] - Read lock: file:/home/luojiesi/GeoServer/data_dir/data/nansong/南宋1208年/1208_州府级驻点.fix by org.geotools.data.shapefile.indexed.IndexedFidReader
27 Nov 18:41:16 TRACE [org.geotools.data.shapefile] - IndexedFidReader has been opened. Number open: 1
27 Nov 18:41:16 DEBUG [org.geotools.xml] - _Feature is abstract
27 Nov 18:41:16 DEBUG [org.geotools.data.shapefile] - Read lock: file:/home/luojiesi/GeoServer/data_dir/data/nansong/南宋1208年/1208_州府级驻点.shp by org.geotools.data.shapefile.shp.ShapefileReader
27 Nov 18:41:16 TRACE [org.geotools.data.shapefile] - Shapefile Reader has been closed. Number open: 0
27 Nov 18:41:16 DEBUG [org.geotools.data.shapefile] - Read lock: file:/home/luojiesi/GeoServer/data_dir/data/nansong/南宋1208年/1208_州府级驻点.shx by org.geotools.data.shapefile.shp.IndexFile
27 Nov 18:41:16 TRACE [org.geotools.data.shapefile] - IndexFile has been closed. Number open: 0
27 Nov 18:41:16 DEBUG [org.geotools.data.shapefile] - Read lock: file:/home/luojiesi/GeoServer/data_dir/data/nansong/南宋1208年/1208_州府级驻点.dbf by org.geotools.data.shapefile.dbf.IndexedDbaseFileReader
27 Nov 18:41:16 TRACE [org.geotools.data.shapefile] - Dbase File Reader has been closed. Number open: 0
27 Nov 18:41:16 DEBUG [org.geotools.data.shapefile] - Read lock: file:/home/luojiesi/GeoServer/data_dir/data/nansong/南宋1208年/1208_州府级驻点.fix by org.geotools.data.shapefile.indexed.IndexedFidReader
27 Nov 18:41:16 TRACE [org.geotools.data.shapefile] - IndexedFidReader has been closed. Number open: 0
27 Nov 18:41:16 ERROR [org.geoserver.ows] -
java.lang.RuntimeException: Encode failed for _Feature. Cause: INVALID_CHARACTER_ERR: An invalid or illegal XML character is specified.
at org.geotools.xml.impl.ElementEncodeExecutor.visit(ElementEncodeExecutor.java:132)
at org.geotools.xml.impl.BindingWalker$BindingExecutionChain.execute(BindingWalker.java:215)
at org.geotools.xml.impl.BindingWalker.walk(BindingWalker.java:181)
at org.geotools.xml.impl.BindingVisitorDispatch.walk(BindingVisitorDispatch.java:44)
at org.geotools.xml.impl.ElementEncoder.encode(ElementEncoder.java:83)
at org.geotools.xml.Encoder.encode(Encoder.java:1080)
at org.geotools.xml.Encoder.encode(Encoder.java:831)
at org.geotools.xml.Encoder.encode(Encoder.java:561)
at org.geoserver.wfs.xml.GML3OutputFormat.write(GML3OutputFormat.java:190)
at org.geoserver.wfs.WFSGetFeatureOutputFormat.write(WFSGetFeatureOutputFormat.java:137)
at org.geoserver.ows.Dispatcher.response(Dispatcher.java:726)
at org.geoserver.ows.Dispatcher.handleRequestInternal(Dispatcher.java:234)
at org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:153)
at org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:48)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:875)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:809)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:571)
at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:511)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1093)
at org.vfny.geoserver.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:108)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:265)
at org.acegisecurity.intercept.web.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:107)
at org.acegisecurity.intercept.web.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:72)
at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
at org.acegisecurity.ui.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:124)
at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
at org.acegisecurity.providers.anonymous.AnonymousProcessingFilter.doFilter(AnonymousProcessingFilter.java:125)
at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
at org.acegisecurity.ui.basicauth.BasicProcessingFilter.doFilter(BasicProcessingFilter.java:174)
at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
at org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter(HttpSessionContextIntegrationFilter.java:249)
at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
at org.acegisecurity.util.FilterChainProxy.doFilter(FilterChainProxy.java:149)
at org.acegisecurity.util.FilterToBeanProxy.doFilter(FilterToBeanProxy.java:98)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
at org.geoserver.filters.LoggingFilter.doFilter(LoggingFilter.java:73)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
at org.geoserver.filters.ReverseProxyFilter.doFilter(ReverseProxyFilter.java:183)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
at org.geoserver.filters.GZIPFilter.doFilter(GZIPFilter.java:41)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:360)
at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:726)
at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405)
at org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:206)
at org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)
at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
at org.mortbay.jetty.Server.handle(Server.java:324)
at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:505)
at org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:842)
at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:648)
at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:205)
at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:380)
at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:395)
at org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:450)
Caused by: org.w3c.dom.DOMException: INVALID_CHARACTER_ERR: An invalid or illegal XML character is specified.
at org.apache.xerces.dom.CoreDocumentImpl.checkQName(Unknown Source)
at org.apache.xerces.dom.ElementNSImpl.setName(Unknown Source)
at org.apache.xerces.dom.ElementNSImpl.(Unknown Source)
at org.apache.xerces.dom.CoreDocumentImpl.createElementNS(Unknown Source)
at org.geotools.gml3.bindings.GML3EncodingUtils.AbstractFeatureType_encode(GML3EncodingUtils.java:163)
at org.geotools.gml3.bindings.AbstractFeatureTypeBinding.encode(AbstractFeatureTypeBinding.java:135)
at org.geotools.xml.impl.ElementEncodeExecutor.visit(ElementEncodeExecutor.java:124)
… 60 more

It’s easy to figure out that the characters have been successfully received by the server, error occurs when the geoserver handle the request.


luojiesi@anonymised.com
http://www.luojs.com

Looks like the gml encoder is not handling special characters properly. Can you file a bug in jira? If you can supply some data and example requests that would be even better.

You may also want to try gml2 output / wfs 1.0 to see if it suffers from the same issue.

-Justin

On Sat, Nov 27, 2010 at 5:04 AM, Luo Jiesi <luojiesi03@anonymised.com> wrote:

Hi,

I have a probelm with character encoding in WFS requests using GeoServer 2.0.2.

I use GetFeature to get information of a point whose ‘NAME’ property likes a certain value. Problem arises when the layer name and the value contains CHINESE characters. The debug infomation is shown as follows:

INFO [org.geoserver.wfs] -
Request: getServiceInfo
27 Nov 18:41:16 DEBUG [org.geotools.xml] - schemaLocation found: http://www.opengis.net/wfs http://schemas.opengis.net/wfs/1.1.0/wfs.xsd
27 Nov 18:41:16 DEBUG [org.geotools.xml] - Found override for http://www.opengis.net/wfs: http://schemas.opengis.net/wfs/1.1.0/wfs.xsd ==> jar:file:/home/luojiesi/GeoServer/webapps/geoserver/WEB-INF/lib/wfs-2.0.2.jar!/org/geoserver/wfs/xml/v1_1_0/wfs.xsd
27 Nov 18:41:16 DEBUG [org.geotools.data.shapefile] - Read lock: file:/home/luojiesi/GeoServer/data_dir/data/nansong/南宋1208年/1208_州府级驻点.qix by org.geotools.data.shapefile.indexed.IndexedShapefileDataStore: 1208_州府级驻点
27 Nov 18:41:16 DEBUG [org.geotools.data.shapefile] - Read lock: file:/home/luojiesi/GeoServer/data_dir/data/nansong/南宋1208年/1208_州府级驻点.shp by org.geotools.data.shapefile.indexed.IndexedShapefileDataStore: 1208_州府级驻点
27 Nov 18:41:16 DEBUG [org.geotools.data.shapefile] - Read lock: file:/home/luojiesi/GeoServer/data_dir/data/nansong/南宋1208年/1208_州府级驻点.shp by org.geotools.data.shapefile.indexed.IndexedShapefileDataStore: 1208_州府级驻点
27 Nov 18:41:16 DEBUG [org.geotools.data.shapefile] - Read lock: file:/home/luojiesi/GeoServer/data_dir/data/nansong/南宋1208年/1208_州府级驻点.qix by org.geotools.data.shapefile.indexed.IndexedShapefileDataStore: 1208_州府级驻点
27 Nov 18:41:16 DEBUG [org.geotools.data.shapefile] - Read lock: file:/home/luojiesi/GeoServer/data_dir/data/nansong/南宋1208年/1208_州府级驻点.qix by org.geotools.data.shapefile.indexed.IndexedShapefileDataStore: 1208_州府级驻点
27 Nov 18:41:16 TRACE [org.geotools.data.shapefile] - IndexFile has been opened. Number open: 1
27 Nov 18:41:16 DEBUG [org.geotools.data.shapefile] - Read lock: file:/home/luojiesi/GeoServer/data_dir/data/nansong/南宋1208年/1208_州府级驻点.shx by org.geotools.data.shapefile.shp.IndexFile
27 Nov 18:41:16 TRACE [org.geotools.data.shapefile] - Memory mapping file…
27 Nov 18:41:16 TRACE [org.geotools.index.quadtree] - QuadTree opened
27 Nov 18:41:16 DEBUG [org.geotools.data.shapefile] - Read lock: file:/home/luojiesi/GeoServer/data_dir/data/nansong/南宋1208年/1208_州府级驻点.qix by org.geotools.data.shapefile.indexed.IndexedShapefileDataStore: 1208_州府级驻点
27 Nov 18:41:16 DEBUG [org.geotools.data.shapefile] - Read lock: file:/home/luojiesi/GeoServer/data_dir/data/nansong/南宋1208年/1208_州府级驻点.shx by org.geotools.data.shapefile.shp.IndexFile
27 Nov 18:41:16 TRACE [org.geotools.data.shapefile] - IndexFile has been closed. Number open: 0
27 Nov 18:41:16 DEBUG [org.geotools.data.shapefile] - Read lock: file:/home/luojiesi/GeoServer/data_dir/data/nansong/南宋1208年/1208_州府级驻点.dbf by org.geotools.data.shapefile.dbf.IndexedDbaseFileReader
27 Nov 18:41:16 TRACE [org.geotools.data.shapefile] - Dbase File Reader has been opened. Number open: 1
27 Nov 18:41:16 DEBUG [org.geotools.data.shapefile] - Read lock: file:/home/luojiesi/GeoServer/data_dir/data/nansong/南宋1208年/1208_州府级驻点.shp by org.geotools.data.shapefile.shp.ShapefileReader
27 Nov 18:41:16 TRACE [org.geotools.data.shapefile] - Shapefile Reader has been opened. Number open: 1
27 Nov 18:41:16 TRACE [org.geotools.data.shapefile] - IndexFile has been opened. Number open: 1
27 Nov 18:41:16 DEBUG [org.geotools.data.shapefile] - Read lock: file:/home/luojiesi/GeoServer/data_dir/data/nansong/南宋1208年/1208_州府级驻点.shx by org.geotools.data.shapefile.shp.IndexFile
27 Nov 18:41:16 TRACE [org.geotools.data.shapefile] - Memory mapping file…
27 Nov 18:41:16 DEBUG [org.geotools.data.shapefile] - Read lock: file:/home/luojiesi/GeoServer/data_dir/data/nansong/南宋1208年/1208_州府级驻点.fix by org.geotools.data.shapefile.indexed.IndexedShapefileDataStore: 1208_州府级驻点
27 Nov 18:41:16 DEBUG [org.geotools.data.shapefile] - Read lock: file:/home/luojiesi/GeoServer/data_dir/data/nansong/南宋1208年/1208_州府级驻点.shp by org.geotools.data.shapefile.indexed.IndexedShapefileDataStore: 1208_州府级驻点
27 Nov 18:41:16 DEBUG [org.geotools.data.shapefile] - Read lock: file:/home/luojiesi/GeoServer/data_dir/data/nansong/南宋1208年/1208_州府级驻点.shp by org.geotools.data.shapefile.indexed.IndexedShapefileDataStore: 1208_州府级驻点
27 Nov 18:41:16 DEBUG [org.geotools.data.shapefile] - Read lock: file:/home/luojiesi/GeoServer/data_dir/data/nansong/南宋1208年/1208_州府级驻点.fix by org.geotools.data.shapefile.indexed.IndexedShapefileDataStore: 1208_州府级驻点
27 Nov 18:41:16 DEBUG [org.geotools.data.shapefile] - Read lock: file:/home/luojiesi/GeoServer/data_dir/data/nansong/南宋1208年/1208_州府级驻点.fix by org.geotools.data.shapefile.indexed.IndexedFidReader
27 Nov 18:41:16 TRACE [org.geotools.data.shapefile] - IndexedFidReader has been opened. Number open: 1
27 Nov 18:41:16 DEBUG [org.geotools.core] - wildcard * single .
27 Nov 18:41:16 DEBUG [org.geotools.core] - escape ! esc ! esc == \ false
27 Nov 18:41:16 DEBUG [org.geotools.core] - tmp = looking at 永
27 Nov 18:41:16 DEBUG [org.geotools.core] - tmp = 永 looking at 州
27 Nov 18:41:16 DEBUG [org.geotools.core] - final pattern 永州
27 Nov 18:41:16 DEBUG [org.geotools.data.shapefile] - Read lock: file:/home/luojiesi/GeoServer/data_dir/data/nansong/南宋1208年/1208_州府级驻点.shp by org.geotools.data.shapefile.shp.ShapefileReader
27 Nov 18:41:16 TRACE [org.geotools.data.shapefile] - Shapefile Reader has been closed. Number open: 0
27 Nov 18:41:16 DEBUG [org.geotools.data.shapefile] - Read lock: file:/home/luojiesi/GeoServer/data_dir/data/nansong/南宋1208年/1208_州府级驻点.shx by org.geotools.data.shapefile.shp.IndexFile
27 Nov 18:41:16 TRACE [org.geotools.data.shapefile] - IndexFile has been closed. Number open: 0
27 Nov 18:41:16 DEBUG [org.geotools.data.shapefile] - Read lock: file:/home/luojiesi/GeoServer/data_dir/data/nansong/南宋1208年/1208_州府级驻点.dbf by org.geotools.data.shapefile.dbf.IndexedDbaseFileReader
27 Nov 18:41:16 TRACE [org.geotools.data.shapefile] - Dbase File Reader has been closed. Number open: 0
27 Nov 18:41:16 DEBUG [org.geotools.data.shapefile] - Read lock: file:/home/luojiesi/GeoServer/data_dir/data/nansong/南宋1208年/1208_州府级驻点.fix by org.geotools.data.shapefile.indexed.IndexedFidReader
27 Nov 18:41:16 TRACE [org.geotools.data.shapefile] - IndexedFidReader has been closed. Number open: 0
27 Nov 18:41:16 INFO [org.geoserver.wfs] -
Request: getFeature
handle = null
service = WFS
version = 1.1.0
baseUrl = http://10.15.69.77:8888/geoserver/
providedVersion = null
query = [net.opengis.wfs.impl.QueryTypeImpl@anonymised.com (group: null, propertyName: null, function: null, filter: [[ NAME_CH is like 永州 ] AND [ the_geom bbox POLYGON ((67.363189603321 12.443257476878, 67.363189603321 49.016742523122, 145.58981039668 49.016742523122, 145.58981039668 12.443257476878, 67.363189603321 12.443257476878)) ]], sortBy: null, featureVersion: null, handle: null, srsName: EPSG:4326, typeName: {[http://www.cadal.org/nansong}1208_州府级驻点])]
maxFeatures = null
outputFormat = text/xml; subtype=gml/3.1.1
resultType = results
traverseXlinkDepth = null
traverseXlinkExpiry = null
formatOptions = {}
27 Nov 18:41:16 DEBUG [org.geotools.data.shapefile] - Read lock: file:/home/luojiesi/GeoServer/data_dir/data/nansong/南宋1208年/1208_州府级驻点.qix by org.geotools.data.shapefile.indexed.IndexedShapefileDataStore: 1208_州府级驻点
27 Nov 18:41:16 DEBUG [org.geotools.data.shapefile] - Read lock: file:/home/luojiesi/GeoServer/data_dir/data/nansong/南宋1208年/1208_州府级驻点.shp by org.geotools.data.shapefile.indexed.IndexedShapefileDataStore: 1208_州府级驻点
27 Nov 18:41:16 DEBUG [org.geotools.data.shapefile] - Read lock: file:/home/luojiesi/GeoServer/data_dir/data/nansong/南宋1208年/1208_州府级驻点.shp by org.geotools.data.shapefile.indexed.IndexedShapefileDataStore: 1208_州府级驻点
27 Nov 18:41:16 DEBUG [org.geotools.data.shapefile] - Read lock: file:/home/luojiesi/GeoServer/data_dir/data/nansong/南宋1208年/1208_州府级驻点.qix by org.geotools.data.shapefile.indexed.IndexedShapefileDataStore: 1208_州府级驻点
27 Nov 18:41:16 DEBUG [org.geotools.data.shapefile] - Read lock: file:/home/luojiesi/GeoServer/data_dir/data/nansong/南宋1208年/1208_州府级驻点.qix by org.geotools.data.shapefile.indexed.IndexedShapefileDataStore: 1208_州府级驻点
27 Nov 18:41:16 TRACE [org.geotools.data.shapefile] - IndexFile has been opened. Number open: 1
27 Nov 18:41:16 DEBUG [org.geotools.data.shapefile] - Read lock: file:/home/luojiesi/GeoServer/data_dir/data/nansong/南宋1208年/1208_州府级驻点.shx by org.geotools.data.shapefile.shp.IndexFile
27 Nov 18:41:16 TRACE [org.geotools.data.shapefile] - Memory mapping file…
27 Nov 18:41:16 TRACE [org.geotools.index.quadtree] - QuadTree opened
27 Nov 18:41:16 DEBUG [org.geotools.data.shapefile] - Read lock: file:/home/luojiesi/GeoServer/data_dir/data/nansong/南宋1208年/1208_州府级驻点.qix by org.geotools.data.shapefile.indexed.IndexedShapefileDataStore: 1208_州府级驻点
27 Nov 18:41:16 DEBUG [org.geotools.data.shapefile] - Read lock: file:/home/luojiesi/GeoServer/data_dir/data/nansong/南宋1208年/1208_州府级驻点.shx by org.geotools.data.shapefile.shp.IndexFile
27 Nov 18:41:16 TRACE [org.geotools.data.shapefile] - IndexFile has been closed. Number open: 0
27 Nov 18:41:16 DEBUG [org.geotools.data.shapefile] - Read lock: file:/home/luojiesi/GeoServer/data_dir/data/nansong/南宋1208年/1208_州府级驻点.dbf by org.geotools.data.shapefile.dbf.IndexedDbaseFileReader
27 Nov 18:41:16 TRACE [org.geotools.data.shapefile] - Dbase File Reader has been opened. Number open: 1
27 Nov 18:41:16 DEBUG [org.geotools.data.shapefile] - Read lock: file:/home/luojiesi/GeoServer/data_dir/data/nansong/南宋1208年/1208_州府级驻点.shp by org.geotools.data.shapefile.shp.ShapefileReader
27 Nov 18:41:16 TRACE [org.geotools.data.shapefile] - Shapefile Reader has been opened. Number open: 1
27 Nov 18:41:16 TRACE [org.geotools.data.shapefile] - IndexFile has been opened. Number open: 1
27 Nov 18:41:16 DEBUG [org.geotools.data.shapefile] - Read lock: file:/home/luojiesi/GeoServer/data_dir/data/nansong/南宋1208年/1208_州府级驻点.shx by org.geotools.data.shapefile.shp.IndexFile
27 Nov 18:41:16 TRACE [org.geotools.data.shapefile] - Memory mapping file…
27 Nov 18:41:16 DEBUG [org.geotools.data.shapefile] - Read lock: file:/home/luojiesi/GeoServer/data_dir/data/nansong/南宋1208年/1208_州府级驻点.fix by org.geotools.data.shapefile.indexed.IndexedShapefileDataStore: 1208_州府级驻点
27 Nov 18:41:16 DEBUG [org.geotools.data.shapefile] - Read lock: file:/home/luojiesi/GeoServer/data_dir/data/nansong/南宋1208年/1208_州府级驻点.shp by org.geotools.data.shapefile.indexed.IndexedShapefileDataStore: 1208_州府级驻点
27 Nov 18:41:16 DEBUG [org.geotools.data.shapefile] - Read lock: file:/home/luojiesi/GeoServer/data_dir/data/nansong/南宋1208年/1208_州府级驻点.shp by org.geotools.data.shapefile.indexed.IndexedShapefileDataStore: 1208_州府级驻点
27 Nov 18:41:16 DEBUG [org.geotools.data.shapefile] - Read lock: file:/home/luojiesi/GeoServer/data_dir/data/nansong/南宋1208年/1208_州府级驻点.fix by org.geotools.data.shapefile.indexed.IndexedShapefileDataStore: 1208_州府级驻点
27 Nov 18:41:16 DEBUG [org.geotools.data.shapefile] - Read lock: file:/home/luojiesi/GeoServer/data_dir/data/nansong/南宋1208年/1208_州府级驻点.fix by org.geotools.data.shapefile.indexed.IndexedFidReader
27 Nov 18:41:16 TRACE [org.geotools.data.shapefile] - IndexedFidReader has been opened. Number open: 1
27 Nov 18:41:16 DEBUG [org.geotools.xml] - _Feature is abstract
27 Nov 18:41:16 DEBUG [org.geotools.data.shapefile] - Read lock: file:/home/luojiesi/GeoServer/data_dir/data/nansong/南宋1208年/1208_州府级驻点.shp by org.geotools.data.shapefile.shp.ShapefileReader
27 Nov 18:41:16 TRACE [org.geotools.data.shapefile] - Shapefile Reader has been closed. Number open: 0
27 Nov 18:41:16 DEBUG [org.geotools.data.shapefile] - Read lock: file:/home/luojiesi/GeoServer/data_dir/data/nansong/南宋1208年/1208_州府级驻点.shx by org.geotools.data.shapefile.shp.IndexFile
27 Nov 18:41:16 TRACE [org.geotools.data.shapefile] - IndexFile has been closed. Number open: 0
27 Nov 18:41:16 DEBUG [org.geotools.data.shapefile] - Read lock: file:/home/luojiesi/GeoServer/data_dir/data/nansong/南宋1208年/1208_州府级驻点.dbf by org.geotools.data.shapefile.dbf.IndexedDbaseFileReader
27 Nov 18:41:16 TRACE [org.geotools.data.shapefile] - Dbase File Reader has been closed. Number open: 0
27 Nov 18:41:16 DEBUG [org.geotools.data.shapefile] - Read lock: file:/home/luojiesi/GeoServer/data_dir/data/nansong/南宋1208年/1208_州府级驻点.fix by org.geotools.data.shapefile.indexed.IndexedFidReader
27 Nov 18:41:16 TRACE [org.geotools.data.shapefile] - IndexedFidReader has been closed. Number open: 0
27 Nov 18:41:16 ERROR [org.geoserver.ows] -
java.lang.RuntimeException: Encode failed for _Feature. Cause: INVALID_CHARACTER_ERR: An invalid or illegal XML character is specified.
at org.geotools.xml.impl.ElementEncodeExecutor.visit(ElementEncodeExecutor.java:132)
at org.geotools.xml.impl.BindingWalker$BindingExecutionChain.execute(BindingWalker.java:215)
at org.geotools.xml.impl.BindingWalker.walk(BindingWalker.java:181)
at org.geotools.xml.impl.BindingVisitorDispatch.walk(BindingVisitorDispatch.java:44)
at org.geotools.xml.impl.ElementEncoder.encode(ElementEncoder.java:83)
at org.geotools.xml.Encoder.encode(Encoder.java:1080)
at org.geotools.xml.Encoder.encode(Encoder.java:831)
at org.geotools.xml.Encoder.encode(Encoder.java:561)
at org.geoserver.wfs.xml.GML3OutputFormat.write(GML3OutputFormat.java:190)
at org.geoserver.wfs.WFSGetFeatureOutputFormat.write(WFSGetFeatureOutputFormat.java:137)
at org.geoserver.ows.Dispatcher.response(Dispatcher.java:726)
at org.geoserver.ows.Dispatcher.handleRequestInternal(Dispatcher.java:234)
at org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:153)
at org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:48)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:875)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:809)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:571)
at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:511)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1093)
at org.vfny.geoserver.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:108)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:265)
at org.acegisecurity.intercept.web.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:107)
at org.acegisecurity.intercept.web.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:72)
at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
at org.acegisecurity.ui.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:124)
at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
at org.acegisecurity.providers.anonymous.AnonymousProcessingFilter.doFilter(AnonymousProcessingFilter.java:125)
at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
at org.acegisecurity.ui.basicauth.BasicProcessingFilter.doFilter(BasicProcessingFilter.java:174)
at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
at org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter(HttpSessionContextIntegrationFilter.java:249)
at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
at org.acegisecurity.util.FilterChainProxy.doFilter(FilterChainProxy.java:149)
at org.acegisecurity.util.FilterToBeanProxy.doFilter(FilterToBeanProxy.java:98)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
at org.geoserver.filters.LoggingFilter.doFilter(LoggingFilter.java:73)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
at org.geoserver.filters.ReverseProxyFilter.doFilter(ReverseProxyFilter.java:183)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
at org.geoserver.filters.GZIPFilter.doFilter(GZIPFilter.java:41)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:360)
at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:726)
at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405)
at org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:206)
at org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)
at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
at org.mortbay.jetty.Server.handle(Server.java:324)
at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:505)
at org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:842)
at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:648)
at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:205)
at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:380)
at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:395)
at org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:450)
Caused by: org.w3c.dom.DOMException: INVALID_CHARACTER_ERR: An invalid or illegal XML character is specified.
at org.apache.xerces.dom.CoreDocumentImpl.checkQName(Unknown Source)
at org.apache.xerces.dom.ElementNSImpl.setName(Unknown Source)
at org.apache.xerces.dom.ElementNSImpl.(Unknown Source)
at org.apache.xerces.dom.CoreDocumentImpl.createElementNS(Unknown Source)
at org.geotools.gml3.bindings.GML3EncodingUtils.AbstractFeatureType_encode(GML3EncodingUtils.java:163)
at org.geotools.gml3.bindings.AbstractFeatureTypeBinding.encode(AbstractFeatureTypeBinding.java:135)
at org.geotools.xml.impl.ElementEncodeExecutor.visit(ElementEncodeExecutor.java:124)
… 60 more

It’s easy to figure out that the characters have been successfully received by the server, error occurs when the geoserver handle the request.


luojiesi@anonymised.com
http://www.luojs.com


Increase Visibility of Your 3D Game App & Earn a Chance To Win $500!
Tap into the largest installed PC base & get more eyes on your game by
optimizing for Intel(R) Graphics Technology. Get started today with the
Intel(R) Software Partner Program. Five $500 cash prizes are up for grabs.
http://p.sf.net/sfu/intelisp-dev2dev


Geoserver-users mailing list
Geoserver-users@anonymised.comsts.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-users


Justin Deoliveira
OpenGeo - http://opengeo.org
Enterprise support for open source geospatial.

Thanks, I try gml2 output and it deals with chinese characters correctly. But another problem occurs. OpenLayers shows that the server’s reponse isn’t well-formed.

<?xml version="1.0" encoding="UTF-8"?>unknown111.63142796,26.25247816永州Yongzhou永州州Zhou111.6314279622126.2524781567510281028Nansong南宋100985

When I open the response with gedit or firefox or vim, all shows that there’s something with the node nansong:1208_州府级驻点…</…>. But when I compare the response with another response which the server gives in the DEMO getFeature-1.0, I find that the only difference is that in the first response the namespace nansong is followed by a layer name which contains chinese character while in the other not. Here is the demo’s response:

<wfs:FeatureCollection xmlns=“http://www.opengis.net/wfs” xmlns:wfs=“http://www.opengis.net/wfs” xmlns:topp=“http://www.openplans.org/topp” xmlns:gml=“http://www.opengis.net/gml” xmlns:xsi=“http://www.w3.org/2001/XMLSchema-instance” xsi:schemaLocation=“http://www.openplans.org/topphttp://10.15.69.77:8888/geoserver/wfs?service=WFS&version=1.0.0&request=DescribeFeatureType&typeName=topp%3Astateshttp://www.opengis.net/wfs http://schemas.opengis.net/wfs/1.0.0/WFS-basic.xsd”>gml:boundedBygml:nullunknown</gml:null></gml:boundedBy>gml:featureMember
<topp:states fid=“states.3”>topp:the_geom<gml:MultiPolygon srsName=“http://www.opengis.net/gml/srs/epsg.xml#4326”>gml:polygonMembergml:Polygongml:outerBoundaryIsgml:LinearRing<gml:coordinates xmlns:gml=“http://www.opengis.net/gml” decimal=“.” cs=“,” ts=" ">-75.70742,38.557476 -75.71106,38.649551 -75.724937,38.83017 -75.752922,39.141548 -75.761658,39.247753 -75.764664,39.295849 -75.772697,39.383007 -75.791435,39.723755 -75.775269,39.724442 -75.745934,39.774818 -75.695114,39.820347 -75.644341,39.838196 -75.583794,39.840008 -75.470345,39.826435 -75.42083,39.79887 -75.412117,39.789658 -75.428009,39.77813 -75.460754,39.763248 -75.475128,39.741718 -75.476334,39.719971 -75.489639,39.714745 -75.610725,39.612793 -75.562996,39.566723 -75.590187,39.463768 -75.515572,39.36694 -75.402481,39.257637 -75.397728,39.073036 -75.324852,39.012386 -75.307899,38.945911 -75.190941,38.80867 -75.083138,38.799812 -75.045998,38.44949 -75.068298,38.449963 -75.093094,38.450451 -75.350204,38.455208 -75.69915,38.463066 -75.70742,38.557476</gml:coordinates></gml:LinearRing></gml:outerBoundaryIs></gml:Polygon></gml:polygonMember></gml:MultiPolygon></topp:the_geom>topp:STATE_NAMEDelaware</topp:STATE_NAME>topp:STATE_FIPS10</topp:STATE_FIPS>topp:SUB_REGIONS Atl</topp:SUB_REGION>topp:STATE_ABBRDE</topp:STATE_ABBR>topp:LAND_KM5062.456</topp:LAND_KM>topp:WATER_KM1385.022</topp:WATER_KM>topp:PERSONS666168.0</topp:PERSONS>topp:FAMILIES175867.0</topp:FAMILIES>topp:HOUSHOLD247497.0</topp:HOUSHOLD>topp:MALE322968.0</topp:MALE>topp:FEMALE343200.0</topp:FEMALE>topp:WORKERS247566.0</topp:WORKERS>topp:DRVALONE258087.0</topp:DRVALONE>topp:CARPOOL42968.0</topp:CARPOOL>topp:PUBTRANS8069.0</topp:PUBTRANS>topp:EMPLOYED335147.0</topp:EMPLOYED>topp:UNEMPLOY13945.0</topp:UNEMPLOY>topp:SERVICE87973.0</topp:SERVICE>topp:MANUAL44140.0</topp:MANUAL>topp:P_MALE0.485</topp:P_MALE>topp:P_FEMALE0.515</topp:P_FEMALE>topp:SAMP_POP102776.0</topp:SAMP_POP></topp:states></gml:featureMember></wfs:FeatureCollection>

OpenLayers, gedit, firefox , vim don’t show any warning. It seems that the demo’s response’s format is legal.
Does the chinese character leads to the wrong parsing of the response? How can I resolve the problem?


luojiesi@…3621…
http://www.luojs.com