繁体   English   中英

BCP导入的文件为UTF-8编码文件

[英]BCP Imported File in UTF-8 Encoded File

我已经在SQL Server 2008中使用大容量复制(BCP)实用程序生成了CSV文件。我想要一个采用UTF-8编码的文件。 我正在使用下面的代码来生成文件。 任何人都可以帮助我解决这个问题。

DECLARE @Path VARCHAR(100) ,
@sql VARCHAR(8000) ,
@DBName VARCHAR(100) ,
@exePath VARCHAR(100),

SELECT @sql = 'bcp "SELECT * FROM '+@DBName+'..ABC" queryout  '+@Path+'\'+'ABC'.csv -c -k     -t, -U sa -P abc -T -S ' + @@servername

exec @exePath @sql;

Sql Server 2008不支持utf-8,但是您可以使用“ -w”代替“ -c”,这将使用DiMach提到的UTF-16,问题是csv文件格式不正确。

如果您尝试导出特定语言的csv文件,例如法语(法语包含特殊字符:àéçç...),则需要知道还有其他解决方案:

  • 首先 :尝试在互联网上搜索支持目标语言所有字符的编码,例如对于法语,我们可以找到ISO-8859-1

  • 第二 :在互联网上搜索与您找到的编码相关的页面代码,ISO-8859-1为1252

  • 第三 :在您的sql服务器中执行以下sql请求,以查看您的sql服务器是否支持此编码

    选择名称,将COLLATIONPROPERTY(name,'CodePage')作为Code_Page,从sys.fn_HelpCollat​​ions()中进行描述,其中COLLATIONPROPERTY(name,'CodePage')= 1252按Code_Page进行排序

  • 第四 :在BCP命令中仅使用-C 1252(删除-c和-w)

希望对您有所帮助

只需将“ -c”参数替换为“ -w”

SELECT @sql = 'bcp "SELECT * FROM '+@DBName+'..ABC" queryout  '+@Path+'\'+'ABC'.csv -w -k     -t, -U sa -P abc -T -S ' + @@servername

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM