1. 程式人生 > >Import UTF-8 file to SQL Server

Import UTF-8 file to SQL Server

事實上SQL Server不支援UTF-8,僅支援UTF-16.

http://stackoverflow.com/questions/5498033/how-to-write-utf-8-characters-using-bulk-insert-in-sql-server

因此要想匯入UTF-8到SQL Server,需要以下步驟。

1, 將檔案轉換成UTF-16.

轉換的方式很多。有很多online的轉換器,但是更方便的是使用notepad++:

使用notepad++開啟原始檔->encoding。此時應該看到當前編碼是UTF-8或UTF-8 with BOM。選擇UCS-2,然後儲存即可。UCS-2和UTF-16非常相似,有一點小區別一般可忽略不計。

2, 建立目標表。

在資料庫中建立資料匯入的目標表。注意資料型別要選擇nchar或nvarchar。下面這篇文章解釋了原因:

http://blog.csdn.net/onlyqi/article/details/28418879

3, 使用bulk insert匯入資料。

BULK INSERT DELLAPJ_CHINESE_PRC_STROKE.dbo.test1
   FROM 'C:\Users\886981\Desktop\test.csv'
   WITH
      (
         FIELDTERMINATOR =',',
         ROWTERMINATOR ='\n',
         DATAFILETYPE = 'widechar'
      );

這裡注意如果設定codepage為65001,既UTF-8,則SQL Server會明確報錯說不支援該字符集。

最後我想強調一點,在import/export wizard中可以選擇code page為65001, 但是我從來沒成功匯入過。。。