geotools读写shapefile文件汉字乱码问题的解决方法

       

geotools读写shapefile文件汉字乱码问题的解决方法

        geotools2.4以前的版本在读取shapefile文件的时候存在无法正确处理汉字编码的问题,2.4以及以后的版本已经修复了该问题。本文讨论了在无法升级到更高版本的情况下,如何修复该bug?

       今天在利用geotools读写shapefile的时候发现,geotools在读写shapefile的时候无法正确处理汉字编码问题,在这里发现了解决方法。

       下载geotools的shapefile插件,打开ShapeFileReader找到下面的代码:

charBuffer = CharBuffer.allocate(header .getRecordLength()  1);
Charset chars = Charset.forName(ISO-8859-1 );
decoder = chars.newDecoder();

      原因明白了吧,居然在这里把字符编码写死了???

charBuffer = CharBuffer.allocate(header.getRecordLength()  1);
//Charset chars = Charset.forName(“ISO-8859-1”);
Charset chars = Charset.defaultCharset();
        
decoder 
= chars.newDecoder();

     这样就可以保证同一平台的shape文件读写正常,基本上解决了这个问题。

    但是仍然存在一个问题,如果shape文件是在不同平台上读和写同样会碰到这个问题,不过搞清楚了这个原因之后这个问题应该不难解决,有时间看看geotools2.4以后的版本是怎么处理的?
 
转载自:https://blog.csdn.net/zhaoxinyuan/article/details/1747467

You may also like...