有没有办法将shapefile从LATIN1编码为UTF-8?

#1 楼

您可以使用QGIS做到这一点。首先加载您的shapefile,然后进行save as并编码,然后选择utf-8下拉菜单,然后保存您的文件。

评论


温馨提示:为使此解决方案有效,必须在LATIN1 / ISO-8859-1环境中打开输入shapefile时启动qgis,否则它将无法正确读取。如果您在UTF8环境中工作,转换可能会无提示地失败,从而破坏数据,具体取决于shapefile中的数据。顺便说一句,大多数操作系统现在默认为UTF8。

– Unicoletti
2011年10月19日15:48



请注意,在某些情况下它可能无法正常工作,我遇到了这类问题:(osgeo-org.1560.n6.nabble.com/UTF-8-no-more-td4647456.html)

– JaakL
12年7月16日在5:48

我正在尝试将单个形状文件从系统保存到utf-8,但无法正常工作。 gis.stackexchange.com/questions/219092/…

–穆罕默德·法赞汗(Muhammad Faizan Khan)
16年11月25日在10:09

#2 楼

假设您使用的是Linux,并且可以访问最新版本的GDAL,则可以尝试以下操作(来自本文):

 export SHAPE_ENCODING="ISO-8859-1"
 ogr2ogr output.shp input -lco ENCODING=UTF-8


注意:LATIN1应该也可以工作ISO-8859-1的标准。

在Windows中,请勿设置SHAPE_ENCODINGogr2ogr无法识别ISO-8859-1LATIN1

评论


需要澄清的是,这里的“最新”似乎是1.9.x。我在1.8.1上尝试了一下,但没有用,在1.9.1上再次尝试了,但是做了。

– Michal Migurski
2012年5月26日下午4:59

在Windows上对我不起作用。

–帕维尔·拉齐维洛夫斯基(Pavel Radzivilovsky)
2012年11月21日在21:16

已在Windows中运行,已经更新了答案。

–潮
13年2月10日在23:29

您知道我是否可以在某处查找SHAPE_ENCODING的有效值列表吗?

– JJD
2014年2月28日在13:30

@JJD它们与iconv使用的相同:gnu.org/software/libiconv

– Unicoletti
2014年3月2日15:46

#3 楼

如果我对Shapefile的理解是正确的,则对编码敏感的部分是DBF文件中包含的属性数据库。

以下答案可以帮助我使用LibreOffice Calc / Base解决此问题:

https://gis.stackexchange.com/a/3663/17998

它还具有其他优点,您可以使用不同的字符集打开DBF文件,从而找到找出当前的编码实际是什么。