在Power Bi中导入雪花数据时出现utf-8错误

时间:2019-11-12 23:44:34

标签: utf-8 powerbi snowflake-data-warehouse

我正在使用Power bi雪花连接器从各种表中导入数据。 虽然适用于某些表,但不适用于具有特殊字符的特定表。 这是我得到的错误。 你能帮我吗? 最佳enter image description here

1 个答案:

答案 0 :(得分:5)

我怀疑您具有Windows-1252“拉丁1 Windows”编码数据,即Microsoft的embrace-and-extend版本的iso-8859-1 / ECMA-94。数据以某种方式以utf8的形式呈现给Power BI连接器。正确声明所有内容后,正确的软件(ICU?)将正确地转换为Unicode并编码为utf8,然后再将数据发送到Snowflake。

您有两种选择:

  1. 在源头修复(例如,更正或声明正确的编码),或
  2. 作为二进制数据导入,并在到达Snowflake后尝试修复。

我最好的建议是1.-在导入到Snowflake之前将其重新编码为utf8。

您不能将不是有效字符序列的内容放入文本字​​段。在这种情况下,您将获得错误的数据,这些数据不是有效字符,因此无法将其存储为文本。

怎么可能?这全都与编码有关。 An utf8 character是一个最多6个字节的链式字节序列,被解码为1-5个有效字节Unicode字符代码点(skintone表情符号是长字节序列的示例)。起始字节表明utf8序列有多长,随后的字节均包含两个连续位10 *。如果起始字节无效或正确的后续字节数没有连续位,则您的utf8编码无效。

这怎么发生?在某些字符编码中,每个字节序列都是合法的,例如8位iso-8859-1“ ISO latin 1”或其扩展的表亲Windows-1252。如果您声明此字节序列为utf8而不是iso-8859-1,则您突然得到了一个可能包含无效utf8的字节序列(因为它实际上是Windows-1252编码)。

从您的错误消息开始,没有合法的utf8字符编码开始,其字节为HEX(92),即“后续”字节。