编码影响了WebGis网站地图的显示
今天同事问我:
web.config中<globalization requestEncoding="gb2312" responseEncoding="gb2312" culture="zh-CN" fileEncoding="gb2312"/>是怎么回事,
影响了地图的显示,使地图资源不能使用中文名称,这样地图就不能正常运行了。
gb2312是一个简体中文字符集的中国国家标准,适合中国大陆和部分国际化的软件。
但ArcGIS Server现阶段还不完全支持中文,所以会出现此错误。
我同事先后用了PDF 。 SL 技术开发二维地图,一直没有找到能彻底解决乱码的方案。
1、将IIS7.0里面的.net全球化编码改掉,但会造成其他页面传值全部乱码,具体方法是:
项目中CSS第一行声明gb2312编码,IIS7.0网站.NET全球化中除了文件编码为gb2312,其他三个编码为UTF-8;
2、在SL开发阶段他试着更新REST服务里面的编码,但始终没有找到相关的配置文件;
3、地图上面乱码可不是个小问题,严重影响了项目的质量,无奈之下,我只有把其他页面上的传值取值方式改变了,具体做法:
前台传值时用encodeURIComponent把URI字符串采用UTF-8编码格式,后台取值HttpUtility.UrlDecode(Request.QueryString["kw"], Encoding.UTF8)取值
但这时项目需要改动的地方太多了。
无论是哪种方式,都没有比较好地解决问题,乱码依然隐藏在项目中。
最后想到,竟然网站和SL的REST服务不能共用一个IIS ,不能很好地共用一套编码,那就把它们分开,分别放在二个网站里面,然后对这二个网站分别设置编码规则,
这样的话基本上相互没有影响了。
问题是解决了,但SL 地图的编码问题还是没有彻底弄清楚怎么根除。