首页 > 代码库 > Sql Server 2008R2 遇到了BCP导入各种中文乱码的问题

Sql Server 2008R2 遇到了BCP导入各种中文乱码的问题

今天玩BCP导入数据的时候,有文件格式,有中文字符串问题……以下是历程,和大家分享一下,希望不要走我的弯路

主要那个表是一个翻译表,一个文件里面内涵几十种语言,所以很容易发现问题。

0、使用最常用的语句导数据

  bcp DB.TBOwner.TB in File -S -U -P -r -t -c  来到,死活岛导不进去

1、打开文件,首先发现文件编码使用的是UTF-16 ……难怪死活不能导进去。然后把文件转换成UTF-8 ,不报错了!而且可以导进去了!!

2、开心的时间不到30秒,一查数据……全乱码了,又回到原点了……

3、冷静,查文档,发现其实BCP是不支持UTF-8 的代码页的,然后回想一下,UTF-8 是变长格式,用UE查看数据文档。中文和其它语言是使用2个字符编码,英文是用1个字符编码,那就想到首先将文档转成宽字符,这里我转成了 unicode字符来处理。

4、bcp DB.TBOwner.TB in File -S -U -P -r -t -w 使用原来的语句,讲-c 改成 -w ~导入成功,查看数据无误~解决~

 

这就是知识不扎实走的弯路……

BCP使用工具注释:http://msdn.microsoft.com/zh-cn/library/ms162802.aspx

Sql Server 2008R2 遇到了BCP导入各种中文乱码的问题