[英]bcp queryout xml format file encoding utf-8 xml file validation fail
[英]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_HelpCollations()中进行描述,其中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.