如何将utf-8数据从sql server 2008导出到excel

时间:2013-09-10 09:17:15

标签: sql excel sql-server-2008 utf-8

我尝试通过两个选项将sql server 2008中的utf-8数据导出到excel。但是data-utf-8不正确
示例我有一个表有名称列(排序规则:SQL_Latin1_General_CP1_CI_AS,nvarchar(3000))

|Name               |
|TrÆ°á»ng ÄH Dược|

如果我使用asp代码在浏览器上显示

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

数据显示正确

|Name               |
|Trường ĐH Dược     |

但是当我导出到excel时:

选项1我使用

Enable Ad Hoc Distributed Queries

EXEC sp_configure 'show advanced options', 1;
GO
RECONFIGURE;
GO
EXEC sp_configure 'Ad Hoc Distributed Queries', 1;
GO
RECONFIGURE;
GO


INSERT INTO OPENROWSET('Microsoft.ACE.OLEDB.12.0', 'Excel 8.0;Database=C:\testing.xls;', 'SELECT Name, Email FROM [Sheet1$]')
SELECT Name, Email FROM tblnames
GO

或选项2:我使用

SQL Server Import and Export Wizard

但两个选项都没有显示正确的数据-utf-8。它仍然喜欢

 |Name               |
 |TrÆ°á»ng ÄH Dược|

如何将sql server 2008中的utf-8数据导出为ex​​cel谢谢

1 个答案:

答案 0 :(得分:0)

您可以尝试BCP批量导出,但2008R2

  

SQL Server不支持代码页65001(UTF-8编码)。 reference

您需要在bcp实用程序中添加-w参数以指定编码为UTF16。

DECLARE @cmd varchar(1000)
    SET @cmd = 'bcp "select * from table" queryout "d:\file.csv" -w -T -t; -Slocalhost'
    EXEC xp_cmdshell @cmd


然后尝试在excel中打开csv