Answers:
原始DBF标准定义使用ISO8859-1,并且仅使用ISO8859-1。因此,当您获得真正符合标准的Shapefile时,应为ISO8859-1。当然,这种(非常古老的)限制在当今并不是真正可用的。
ArcGIS和Geopublisher,AtlasStyler和Geoserver开始扩展标准以定义编码。例如,对于ArcGIS,只需创建一个.cpg文件(与其他Shapefile具有相同的基本名称),然后用编码名称填充即可。
例如,使用文本编辑器创建myshape.cpg,并插入5个字符“ UTF-8”并保存。如果然后在ArcGIS中打开Shapefile,它将读取该字符集中DBF的文本内容。
Geoserver:Geoserver WFS可以将任何WFS图层导出为压缩的Shapefile。完成此操作后,zip中将包含一个.cst文件,其与.cpg文件完全相同。
注意:所有这些仅适用于数据,不适用于列名。如果您希望文件可以用其他程序打开,则实际上只应在DBF的列名中使用ASCII。
提示:要更改DBF的编码,请使用OpenOffice Calc打开它。选择“另存为...”,单击左下方的“过滤器选项”,然后按保存。然后,您可以定义将文本内容转换为的编码。
.cpg
文件应该在QGIS做工精细,也因为libgdal 1.9。有时甚至似乎是必要的:ssrebelious.wordpress.com/2012/03/11/...
我很确定没有“正确”的编码。.dbf文件可以采用任何编码,并且您可以打开Shapefile并正确读取属性。
您可以在此处找到ESRI白皮书:http : //www.esri.com/library/whitepapers/pdfs/shapefile.pdf
我通常希望shapefile是UTF-8或在所覆盖国家/地区的本地(通常是一些拉丁编码)。
每当我看到有关编码的问题时,我都会向人们推荐这篇文章:http : //www.joelonsoftware.com/articles/Unicode.html
如它所说:
不知道字符串使用什么编码就没有意义。您不能再将自己的头埋在沙子里,并假装“纯文本”为ASCII。
一种简单的方法是将shp文件转换为csv文件。并使用enca或iconv来检测编码。我尝试使用UTF8和gb18030文件,它可以正常工作。