我导入源CSV文件,我不知道该信源编码,我只能看到两种�
(ANSI编码)或(UTF8-没有-BOM编码),当我打开一个文件用Notepad++
( 相关问题 )。
此文件已经导入到数据库mssql-2008
使用bulk insert
:
DECLARE @bulkinsert NVARCHAR(2000)
SET @bulkinsert =
N'BULK INSERT #TempData FROM ''' +
@FilePath +
N''' WITH (FIRSTROW = 2,FIELDTERMINATOR = ''","'',ROWTERMINATOR =''\n'')'
EXEC sp_executesql @bulkinsert
这被复制到正规table1
从#tempData
在列1( varchar()
现在,当我看这个table1
我看到一些?
代替这些字符。
我试图cast
到nvarchar()
但它并不能帮助。
当我挖成什么这些字符真的是支撑位在同一时间,我们下载的链接,我看到人物都是é
, ä
, å
等。
我会用replace
来修正数据,但我需要做一些丑陋的代码,并期待进言的独特图案和替换,所以似乎很难。
数据库/表归类: SQL_Latin1_General_CP1_CI_AS
COLUMN1(VARCHAR(80))
我可以更改这些字符类似英语的字符或原始字符,而不是?
分数。
我已经看过排序规则和Unicode支持这对我没有帮助。 我明白这是什么意思关于编码,但并没有与供应我做什么 。 我特地到这里的大部分职位的计算器是有一些关于它的帖子,但没有符合我的搜索。
我无法找出问题所在。
它回答的评论。 你尝试了吗?
http://msdn.microsoft.com/en-us/library/ms189941.aspx
选项DATAFILETYPE = 'widenative'
基于从Esailiga评论之前做过或批量导入后的文本被截断。 我同意这听起来像CSV文件本身是单字节。 Unicode的需要选择DATAFILETYPE = 'widenative'。 如果CSV文件是单字节的不是魔术翻译回来。
什么是太糟糕了为E扩展ASCII与SQL焦炭让更多的证据,问题出在CSV支持。
SELECT CAST( 'E' 为CHAR(1))
注意到这一点可以作为扩展的ASCII(<255)
听起来像是你需要去回源。
的? 在SQL是未知的。 同在记事本中。
在我来说,我可以修复与CODEPAGE选项的编码问题:
BULK
INSERT #CSV
FROM 'D:\XY\xy.csv'
WITH
(
CODEPAGE = 'ACP',
DATAFILETYPE ='char',
FIELDTERMINATOR = ',',
ROWTERMINATOR = '\n',
FIRSTROW = 2
)
可能的值:CODEPAGE = { 'ACP' | 'OEM' | “原始” | 'code_page'}]
你可以找到关于此选项的详细信息: BULK INSERT
我仍然无法相信,毕竟这些年来微软还没有修复这个明显的bug。 应该有与èéêë等没有问题,因为他们都是ASCII(<255)。 这个任务提出了一遍又一遍在许多网站和问题尚未得到回答
我的数据是在Excel表格。 已经生成入语句表被解析的第二时间寻找asccii>“Z”和生成和更新表中设置列语句覆盖导入的数据插入。 繁琐但可行
我已经做到了! 毕竟这些年来,我们都找错了地方。 没有工作,不需要重写剧本...
问题在于SSMS ......如果“新查询”由“查询”右键单击你重命名的文件,但不能创建它是为你做了...
但是如果你把“CTRL + N”你得到一个新的查询窗口进行编辑,但没有文件被创建...所以你自己保存,并选择保存按钮编码......接近列表的底部,你”终有一天会发现UTF-8(无签名)代码页65001
这是...
脚本后脚本打开一个新的查询窗口“CTRL + N”的副本,并从现有的查询粘贴,保存为上述指示。 而仿佛被施了魔法它的工作原理
如果你像我一样在Excel表格...解析表写输出到一个新的工作簿中的第1列1片,然后另存为,选择UTF-8编码
要加快处理速度与包含注释的模板文件“ - UTF-8”这样的事情。 将其保存为UTF-8和使用*粘贴到Excel .SQL的文件列表来连接=串连的列表中( “仁templatefile.txt”,CHAR(34)中,a1,CHAR(34))b1和拖放下
经过这些年的手动解决方案,我从字面上与发现的兴奋出汗。 谢谢你让我如此不安