我尝试通过两个选项将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数据导出为excel谢谢
答案 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