SQL 服务器的 bcp 输出将 € 符号替换为下划线

bcp output from SQL Server replaces € symbol with an underscore

您好也许有人可以为我阐明这一点,使用 sql 查询我得到供应商发票详细信息列表,然后使用 bcp 输出到 csv 文件以导入到 ERP 系统中,使用此查询的结果有一些供应商代码包含 € 符号,但在创建 csv 文件时,€ 符号被替换为 _

欧元符号在 SQL 服务器中显示正常,但在下面的 csv 文件中没有显示是我的输出命令

set @bcpCommand = 'bcp "select Supplier_Code,DocType,Invoice_No,Description,Net_Total,Vat_Total,Total from [MyDatabase].[dbo].tempPurchInv order by Invoice_No asc" queryout  '+@filename+ '.csv' +' '+ '-c -t, -T -S' +' '+ @@SERVERNAME

exec master..xp_cmdshell @bcpCommand

如果您不指定代码页,OEM 代码页将用于 char/varchar 列。尝试在 BCP 命令中添加 -C RAW,或支持 € 符号的代码页:

SET @bcpCommand = 'bcp "select Supplier_Code,DocType,Invoice_No,Description,Net_Total,Vat_Total,Total from [MyDatabase].[dbo].tempPurchInv order by Invoice_No asc" queryout  '+@filename+ '.csv' +' '+ '-c -t, -T -C RAW -S' +' '+ @@SERVERNAME;

EXEC master..xp_cmdshell @bcpCommand;

编辑:

请注意,使用系统需要知道非 Unicode 文件的代码页。使用 RAW 规范,这将是列排序规则的代码页。