【问题标题】:SSIS, dealing with codepages, unicodeSSIS,处理代码页,unicode
【发布时间】:2017-09-16 19:50:03
【问题描述】:

我有一个数据库,其中大多数字符串都存储在 varchar 列中。 一列存储人名,有些列有撇号,例如“奥马利”。

当我将此数据输出到 csv 时,撇号变为“O’ Malley”。

我已经尝试了许多步骤,但无法解决这个问题,可以使用一些建议。到目前为止,我有:

  • 已将所有字符串转换为 Unicode。
  • 将 ssis 任务(oledb 源、脚本任务和平面文件连接器)上的代码页更改为 65001
  • 将平面文件目标连接的“unicode”属性更改为“True”。这破坏了现在在 excel 中打开的 csv,所有数据都在第一列,excel 看不到它是一个分隔文件。

有什么建议可以尝试下一步吗?

谢谢。

【问题讨论】:

  • 你在观察这个奇怪的角色是什么? Excel?记事本?您能否确认这是 varchar 字段,而不是 nvarchar 字段? SSIS 元数据查看器说数据类型是什么?如果你在记事本++中打开你的CSV,它是什么类型的编码?
  • 我在 excel 中看到了不需要的字符,但是如果在记事本中打开,数据看起来很正常,没有不需要的字符
  • 所以这是一个excel问题。这有帮助吗:scrapehero.freshdesk.com/support/solutions/articles/…。如果目标是拥有可以在 excel 中打开的文件,请尝试使用 excel 目标(不是 CSV 目标)

标签: sql-server unicode ssis


【解决方案1】:

我已经试过了。数据加载到 csv 中没有任何错误,如果我遗漏了什么,请告诉我,我会相应地更新答案。

代码页:1252(ANSI - 拉丁语 I)

数据库表包含 表: Emp 列: Id INT, 名称 VARCHAR(200)

平面文件目标属性是:

这是excel中文件的快照

【讨论】:

  • 感谢您的浏览,不需要的字符只有在我在 excel 中打开缓存时才会出现,但在我在记事本中打开 csv 时不会出现。
猜你喜欢
  • 2011-11-02
  • 2011-12-07
  • 2018-07-05
  • 1970-01-01
  • 1970-01-01
  • 2014-12-27
  • 1970-01-01
  • 2017-10-27
  • 1970-01-01
相关资源
最近更新 更多