gpt4 book ai didi

sql-server-2008 - 使用 BULK INSERT 未正确导入重音字符

转载 作者:行者123 更新时间:2023-12-02 06:37:56 25 4
gpt4 key购买 nike

我正在导入源 CSV 文件,我不知道源编码,我只能看到 �(ANSI 编码)或 (UTF8 -without-BOM 编码)当我用Notepad++(related question)打开文件时。

此文件已使用批量插入导入到数据库mssql-2008:

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

然后将其从 #tempData 复制到 column1 (varchar()) 中的常规 table1。现在,当我查看此 table1 时,我看到一些 ? 代替了那些字符。

我已经尝试将 cast 转换为 nvarchar() 但它没有帮助。

当我在我们同时下载的链接的支持下深入研究这些字符到底是什么时,我看到这些字符是 é,ä, å 等等。

我会使用 replace 来修复数据,但我需要制作一些难看的代码并查看单个单词模式并替换,所以看起来很困难。

数据库/表排序规则:SQL_Latin1_General_CP1_CI_AScolumn1(Varchar(80))

我能否将这些字符更改为类英文字符或原始字符而不是 ? 标记。

我看过Collation and Unicode Support这对我没有帮助。我了解编码的含义,但没有向我提供 what to do .我查看了 stackoverflow 中的大部分帖子是的,有一些关于它的帖子,但与我的搜索不符。

我无法找出问题所在。

最佳答案

在我的例子中,我可以使用 CODEPAGE 选项修复编码问题:

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

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

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

关于sql-server-2008 - 使用 BULK INSERT 未正确导入重音字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13949875/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com