首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >TSQL FOR XML导出实际的UTF-8编码数据

TSQL FOR XML导出实际的UTF-8编码数据
EN

Stack Overflow用户
提问于 2015-10-07 05:24:11
回答 1查看 1.3K关注 0票数 1

我们有一个编写XML的进程(使用SQL的FOR XML)。在批处理文件中通过SQLCMD执行时,输出为UTF-8格式(具体地说,8位ascii字符变为2字节)。当我通过在SSIS中执行SQL命令来做同样的事情时,它不是UTF-8编码的。

这里有一个简单的例子。®应变为2个字节:

代码语言:javascript
复制
SELECT 'Diversity® Certified' as fldAgentLastName
FOR XML PATH('agent'), ELEMENTS, TYPE, ROOT('agents')

输出结果为:多样性®认证

应该是:多样性®认证

并使用SQLCMD。我知道XML在内部是以UCS-2(?)格式存储的,但我需要一种方法来获得UTF-8编码数据(而不仅仅是8位)的输出。

我也不能使用我见过的BCP技巧。

我不想使用CDATA标签,因为这将需要重新创建一个巨大的丑陋查询。

我在网上找到的所有东西都不是高位ascii字符。

它在SQL Server2008 R2上运行。

EN

回答 1

Stack Overflow用户

发布于 2015-10-07 06:26:30

我想我所要做的就是问一问,然后我会找到我自己的答案:问题不在SQL,而是在SSIS的下游。我在另一个线程中根据这个答案将转换和最终文本文件的代码页更改为65001:

...The解决方法很简单,尽管有点违反直觉-在OLE DB源和平面文件目标之间添加一个数据转换转换步骤,将输入的"Dat“列从DT_NTEXT转换为代码页为65001的DT_TEXT。然后,将新转换的列直接提供给平面文件dest中的输出列。..。你好,雅各布

http://www.sqlservercentral.com/Forums/Topic719421-149-1.aspx

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32980009

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档