span8
span4
我试图在FME中的ESRI shapefile上执行一些转换,但遇到了一些问题。shapefile中的属性都是西班牙语。当我导出到ESRI shapefile时,它没有保留shapefile最初编码的语言属性,而是插入不正确的特殊字符。
下面是ArcCatalog中的shapefile属性表的视图:
下面是通过FME检查器查看shapefile的视图:
如你所见,FME似乎不认识西班牙文字。当我们直接将shapefile写入Microsoft SQL数据库时,这并不是一个问题——我们只是将写入器中的用户属性类型从varchar更新为nvarchar,它完美地处理了字符编码问题。使用ESRI用西班牙语创建的Shapefiles并使用下面的方法直接写入我们的SQL数据库,它们保留了原始的字符编码。
另一个工作流,亚搏在线我们需要将一个大的数据集(覆盖整个墨西哥的高速公路)剪辑到较小的数据集(州边界的高速公路),因此我们使用FME来执行转换。然而,结果是一个shapefile,在attributes表中包含不可识别的字符。
当我们尝试使用与上面描述的工作流相同的工作流将通过FME创建的新shapefiles写入MySQL时,亚搏在线即使在更新writer feature type属性中的属性类型列之后,也会将无法识别的字符写入数据库。
所以我们已经确定FME导致了一个问题,但是不确定如何更新FME来处理这些字符编码问题。有谁知道如何让FME识别并妥善处理这些情况?
经过反复试验,我们已经找到了这个问题。在遇到将读写字符编码设置为Unicode (UTF-8)的问题后,我们决定继续,不设置字符编码来查看属性的外观。事实证明,在那之后,我们没有进一步的字符编码问题。
FME检测您的默认系统字符编码,如果没有选择显式选项,则使用该编码。经过反复试验,我们应该将字符编码选项设置为Windows Latin-1 ANSI (Windows -1252)。这确保了如果我们共享工作区,字符书写将不依赖于系统。
读者设置:
作家设置:
生成的属性:
如果你看一下条件域,你可以在操作数上看到o上的重音符号。该数据集现在已正确编码。
关于这个问题,你能提交支持请求吗?请将您的工作区和源数据示例一起通过电子邮件发送到support@亚搏在线safe.com
数据可能会被混淆:
我们将找出问题的原因并帮助您解决它。
嗨@jcroff
我同意@Mark2At亚搏在线Safe:形状阅读器和形状写入器都有字符编码参数(在添加阅读器/写入器或导航器时请检查参数,在阅读器/写入器参数下)。
西班牙语数据很可能是Windows-1252编码或UTF编码。默认情况下(没有cpg文件,也没有显式设置字符编码),假设数据采用系统默认编码(在您的示例中很可能是Windows-1252)。如果使用默认系统编码进行读取会导致字符混乱,请试着UTF。
在我的阅读器和写入器中,我将字符编码更改为Unicode 8位(utf-8)。当我通过FME数据检查器查看数据属性时,数据仍然混乱。
当我在ArcCatalog中查看shapefile时,它更好,但仍然不正确。我已经强调了我发现的两个问题“En operacion”被更改为“En operaci”。最终,我们将写入MySQL,但在将数据加载到MySQL之前,我们需要对数据执行一些中间处理。我们只是想确保在整个过程中保持正确的编码。
Shapefile写入器还有一个字符编码设置。你设置好了吗?如果可以将其正确地写入SQL Server,那么读取和转换部分应该没问题。
我不太清楚上面的截图。是数据检查器中的Shapefile视图在转换之前还是之后?我想是在那之后吧?
嗨@jcroff,似乎ESRISHAPE阅读器读取的Shapefiles的默认编码是OS,默认情况下。因此,如果源Shapefile是由其他编码创建的,则可能出现这种情况。
Check if the source Shapefile contains a "*.cpg" file.它是一个纯文本文件,描述用于创建Shapefile的编码。
[更正]如果cpg文件存在,阅读器将使用文件中描述的编码。如果cpg不存在,阅读器将使用操作系统的默认编码。可能的原因是:cpg文件丢失,或者cpg文件是错误的。如果你的案件是由其中一个原因引起的,您可以通过阅读器的“字符编码”参数指定正确的编码。
我不知道为什么高级部分没有显示,但是这里存在字符编码参数。
您已经将“utf-8”设置为参数。你的Shapefile是用UTF-8编码的吗?
©2019安全亚搏在线软件公司|法律