【发布时间】:2015-10-06 21:24:10
【问题描述】:
我们有一个编写 XML 的进程(使用 SQL 的 FOR XML)。当它在批处理文件中通过 SQLCMD 执行时,输出为 UTF-8 格式(特别是 8 位 ascii 字符变为 2 字节)。 当我通过 SSIS 中的执行 SQL 命令执行相同操作时,它不是 UTF-8 编码的。
这是一个简单的例子。 ® 应该变成 2 个字节:
SELECT 'Diversity® Certified' as fldAgentLastName
FOR XML PATH('agent'), ELEMENTS, TYPE, ROOT('agents')
输出结果是:Diversity® Certified
应该是:Diversity® 认证
并且正在使用 SQLCMD。我知道内部 XML 存储为 UCS-2(?),但我需要一种方法将输出作为 UTF-8 编码数据(不仅仅是 8 位)。
我也不能使用我见过的 BCP 技巧。
我不想使用 CDATA 标记,因为这将需要重新创建一个巨大的丑陋查询。
我在网上找到的所有内容都没有编码高 ascii 字符。
这是在 SQL Server 2008 R2 上运行的。
【问题讨论】:
标签: sql-server tsql encoding utf-8 ssis