shp2pgsql 对于有中文的shp,一般网上的说法是,使用 -W 'GBK' 来转换 就行了。
但是,最近发现,有些shp在转换时依然会报错。后来,通过核对shp的属性表内容,发现是因为异体字(如'?','?'等)不能正常转换导致的。
比较坑的是,这个shp在supermap中被识别为GB2312编码,且能正常显示。而GB2312编码是不包含像'?','?'这样的异体字的。
解决办法很简单,之前使用
shp2pgsql -W 'GBK' ./'中文shp文件' chinaall.'中文shp文件' > ./'中文shp文件.shp'
来转换shp,
现在用
shp2pgsql -W GB18030 ./'中文shp文件' chinaall.'中文shp文件' > ./'中文shp文件.shp'
就可以了。
目前来说,GB18030是最大的中文字符集,而且兼容GBK和GB2312。
另外,在网上找了下 postgis的shp2pgsql支持哪些字符集,没找到。
阅读(3330) | 评论(0) | 转发(0) |