使用 BULK INSERT 未正确导入重音字符

tou*_*ugh 2 csv bulkinsert character-encoding sql-server-2008

我正在导入源 CSV 文件,我不知道源编码,当我使用(相关问题)打开文件时,只能看到\xc3\xaf\xc2\xbf\xc2\xbd(ANSI 编码)或(UTF8-without-BOM 编码) 。\xef\xbf\xbdNotepad++

\n\n

mssql-2008该文件已使用以下命令导入到数据库中bulk insert

\n\n
DECLARE @bulkinsert NVARCHAR(2000)              \n  SET @bulkinsert =               \n N\'BULK INSERT #TempData FROM \'\'\' +               \n@FilePath +               \nN\'\'\' WITH (FIRSTROW = 2,FIELDTERMINATOR = \'\'","\'\',ROWTERMINATOR =\'\'\\n\'\')\'              \n     EXEC sp_executesql @bulkinsert \n
Run Code Online (Sandbox Code Playgroud)\n\n

然后将其复制到第 1 列 ( ) 中的table1常规内容。现在,当我研究这个时,我看到了一些代替这些角色的东西。#tempDatavarchar()table1?

\n\n

我已经尝试过castnvarchar()但没有帮助。

\n\n

当我在我们同时下载的链接的支持下深入研究这些字符的真正含义时,我发现这些字符是,,\xc3\xa9等等。\xc3\xa4\xc3\xa5

\n\n

我会用来replace修复数据,但我需要编写一些丑陋的代码并研究单词的单独模式并进行替换,所以看起来很困难。

\n\n

数据库/表排序规则:SQL_Latin1_General_CP1_CI_AS\ncolumn1(Varchar(80))

\n\n

我可以将这些字符改为类似英文的字符或原始字符而不是?标记吗?

\n\n

我查看了排序规则和 Unicode 支持,但这对我没有帮助。我理解编码的含义,但没有告诉我该怎么做我已经查看了stackoverflow中的大部分帖子,是的,有一些关于它的帖子,但与我的搜索不匹配。

\n\n

我无法弄清楚问题出在哪里。

\n

SZL*_*SZL 7

就我而言,我可以使用 CODEPAGE 选项修复编码问题:

BULK
INSERT #CSV
FROM 'D:\XY\xy.csv'
WITH
(
   CODEPAGE = 'ACP',
   DATAFILETYPE ='char',
   FIELDTERMINATOR = ',',
   ROWTERMINATOR = '\n',
   FIRSTROW = 2
)
Run Code Online (Sandbox Code Playgroud)

可能的值: CODEPAGE = { 'ACP' | 'OEM'| '原始'| '代码页'}]

您可以在此处找到有关该选项的更多信息: BULK INSERT