簡體   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