![](/img/trans.png)
[英]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.