【问题标题】:SSIS error "UTF8" has no equivalant in encoding "WIN1252"SSIS 错误“UTF8”在编码“WIN1252”中没有等效项
【发布时间】:2019-04-17 01:43:24
【问题描述】:

我正在使用 SSIS 包从 Postgres 数据库中提取数据,但其中一个表出现以下错误。

编码为“UTF8”的字节序列为 0xef 0xbf 0xbd 的字符没有 等效于编码“WIN1252

我不知道如何解决它。我将 sql 表中的所有列都设置为 NVARCHAR(MAX) 但仍然没有用。请提供解决方案。

【问题讨论】:

  • 问题出在客户端。你能让 SSIS 使用不同的编码吗?如果无法更改,则必须修改数据。

标签: sql postgresql utf-8 ssis


【解决方案1】:

完整的 Unicode 字符集(以 UTF8 编码)包含数以万计的不同字符。 WIN1252 包含 256。您的数据包含在 WIN1252 中无法表示的字符。

您要么需要导出到更有用的字符编码,从源数据库中删除“尴尬”字符,要么使用 SSIS 本身进行一些(有损)翻译(我相信“字符映射翻译”是您想要搜索的内容)。

我建议先花一个小时左右搜索 Unicode,它是 utf 编码及其与 ISO 和 WIN 字符集的关系。这样你就会明白选择以上哪一项了。

【讨论】:

  • "regexp_replace(vendor, E'[\\u200e\\u200f\\u202f]+', ' ', 'gi' ) as vendor" 这个表达式是做什么的?
猜你喜欢
  • 2017-06-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-06-29
  • 1970-01-01
  • 1970-01-01
  • 2013-01-09
  • 2012-11-13
相关资源
最近更新 更多