Import UTF-8 file to SQL Server
阿新 • • 發佈:2019-02-18
事實上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, 但是我從來沒成功匯入過。。。