SQL Server Native Client 10.0不支持UTF-8编码的BCP导出问题求助
BCP导出UTF-8 CSV报错的解决指引
核心问题认知
SQL Server Native Client 10.0/11.0均不支持UTF-8编码(代码页65001),仅ODBC Driver 13 for SQL Server及以上版本(含18)支持BCP导出UTF-8格式文件。SQL Server 2016需至少安装SP1,才能配合高版本ODBC驱动实现该功能。
排查与解决步骤
检查存储过程中的BCP命令
查看存储过程内的BCP语句,确认是否存在以下问题:- 硬编码指定了旧版本驱动(如使用
SQLNCLI而非SQLNCLI11或ODBC驱动标识) - 未明确指定高版本BCP工具的完整路径,导致系统调用旧版本
bcp.exe
需修改命令,调用对应版本的BCP工具: - ODBC Driver 13的BCP路径:
C:\Program Files\Microsoft SQL Server\130\Tools\Binn\bcp.exe - ODBC Driver 18的BCP路径:
C:\Program Files\Microsoft SQL Server\Client SDK\ODBC\180\Tools\Binn\bcp.exe
- 硬编码指定了旧版本驱动(如使用
调整系统环境变量优先级
编辑系统PATH环境变量,将高版本ODBC驱动的Binn目录移至旧版本(如SQLNCLI10/11的Binn路径)之前,确保系统默认调用高版本BCP工具。验证驱动注册表配置
打开注册表编辑器,定位至HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI:- 确认
ODBC Driver 13 for SQL Server或ODBC Driver 18 for SQL Server项存在且未被禁用 - 若旧版本驱动仍干扰,可将
SQL Server Native Client 10.0项的Disabled值设为1(谨慎操作,避免影响其他应用)
- 确认
替换编码参数(备选方案)
若暂无法升级驱动,可先导出为UTF-16格式(使用-w参数替代-c -C 65001),再通过第三方工具转换为UTF-8。
内容的提问来源于stack exchange,提问作者Snork
相关产品推荐
相关产品推荐

