导入.csv文件至SQL Server时斯拉夫字母乱码问题咨询
解决SQL Server导入CSV时斯拉夫字母乱码问题
确认CSV文件的真实编码
不要默认认定是ANSI-1250,用Notepad++这类文本编辑器打开CSV,查看「编码」菜单里的实际编码。斯拉夫语系常见的还有UTF-8(带/不带BOM)、Windows-1251,乱码大概率是编码匹配错误导致的。导入向导的核心设置调整
- 进入SQL Server导入和导出向导,选择CSV数据源后,打开「高级」选项,把所有包含特殊字符的列的「数据类型」改为
DT_WSTR(对应SQL的nvarchar类型),拒绝默认的DT_STR。 - 在「数据源」配置页,从「编码」下拉框里选择你刚确认的CSV真实编码(比如UTF-8、Windows-1251),不要硬套ANSI-1250。
- 到目标SQL表设置环节,确保对应字段的类型是
nvarchar或nchar——varchar仅支持单字节编码,存储斯拉夫多字节字符必然乱码。
- 进入SQL Server导入和导出向导,选择CSV数据源后,打开「高级」选项,把所有包含特殊字符的列的「数据类型」改为
向导失效时改用BULK INSERT命令
用T-SQL命令能更精准控制编码,示例如下:BULK INSERT YourTargetTable FROM 'C:\YourFile.csv' WITH ( FIELDTERMINATOR = ',', ROWTERMINATOR = '\n', CODEPAGE = '65001', -- 对应UTF-8,若为Windows-1251则填'1251' DATAFILETYPE = 'widechar', TABLOCK )注意替换表名、文件路径、分隔符,CODEPAGE参数必须和CSV实际编码一致。
额外检查项
- 导入后查看数据时,确保查询工具(比如SSMS)的显示设置正确:在SSMS的「工具」→「选项」→「环境」→「字体和颜色」里,选择支持斯拉夫字符的字体(比如Consolas、Arial Unicode MS)。
- 如果CSV是从Excel导出的,导出时要选择「UTF-8(带BOM)」格式,避免编码信息丢失。
内容的提问来源于stack exchange,提问作者Miszyn
相关产品推荐
相关产品推荐

