第8页
第4排
大家好,
我有一个以几个字符结尾的字符串,当PostgreSQL接收到这些字符时,会导致进程最终终止。不幸的是,我不确定字符串/总是/以这些字符结尾,或者我将使用substringxtractor。
我得到这个错误:
编码“utf8”的字节序列无效:0xc0 0x80
所以我想做的是修剪它们。问题是-如何在不使用Python的情况下做到这一点?
我不能将它们复制/粘贴到attributetrimmer中,因为fme用特殊的“替换字符”来表示它们-https://en.wikipedia.org/wiki/specials_28unicode_block%29替换字符-这意味着Trimmer正在搜索和寻找替换的是特殊的Unicode字符(),不是我要删除的实际内容。
如果我进入源数据库并选择原始编码中的字符并粘贴它,它只是粘贴一个空间。
关于这种剪裁,attributetrimmer文档中没有任何内容。
使用regexp和特定代码点的StringReplacer-https://www.regular-expressions.info/unicode.html码位-不起作用,因为FME显式不允许\u修饰符。或\p修饰符。
如果我真的绝望了,我可能会写一些巨蟒来做,但我需要保持它相当轻量,因为它将运行数百万个功能。
有人对如何处理这个有什么建议吗?
注:FME 2016.0
谢谢,
乔纳森
你好,乔纳森,我今天也遇到了类似的问题。
我的数据编码为UTF-8,问题和你的相似。我认为根本原因是FME太直观,而且是WYSIWYG导向的(你看到的就是你得到的)。但是,FME数据检查员没有显示不可打印和特殊字符(甚至没有在日志文件中发出警告)。
请尝试两种不同的解决方案:
#1.本公司:使用textEncoder(到url percent encoding)以显示任何隐藏字符;使用StringReplacer删除有问题的字符;最后使用textcoder恢复URL百分比编码。
或
#2.第2部分:使用StringReplacer删除不可打印和不需要的字符;我已选择删除不可打印的范围\ X 0000-\X 001F以及一些在我的数据中不常见的扩展ASCII字符。在StringReplacer中,我检查了每一次出现的情况,并将其替换为“空白”或什么都没有。[\x 0000-\x 001f \x 007f-\x 00bf]
您好!@乔纳森
是否尝试将字符复制/粘贴到StringReplacer并运行翻译?字符将不显示…以用户友好的方式,但是变压器可能会正确地保存和处理它们。
另一种选择是修剪字符串的最后一个字符,用提取其代码字符代码提取程序,请检查代码是否为0x80-如果是,应修剪原始字符串的最后两个字符。
您可能还想尝试检查原始字符串是否可以用utf-8表示,使用属性编码器-如果确实没有支持的字符,这个属性编码器会失败的。
您是否已使用数据检查器可视化数据?DI中显示的问题属性编码是什么?
?2019安全亚搏在线软件公司|法律