如何将shapefile从LATIN1编码为UTF-8?


Answers:


16

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


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

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

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

27

假设你是在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

在Windows上对我不起作用。
Pavel Radzivilovsky 2012年

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

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

1
@JJD它们与iconv所使用的相同:gnu.org/software/libiconv
unicoletti 2014年

3

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

这是一个帮助我使用LibreOffice Calc / Base解决此问题的答案:

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

它的另一个好处是,您可以使用不同的字符集打开DBF文件,从而找出当前的编码实际是什么。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.