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();
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();
//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