2015-11-30 41 views
0

我想批量插入一個包含中文字符的csv數據文件到sql server 2012. csv數據文件的原始編碼是utf8,而fmt文件是由bcp工具生成的。問題是,如果我通過記事本將csv數據文件的編碼從utf8轉換爲unicode(用記事本打開數據文件,然後選擇'另存爲'並選擇'unicode'格式),我可以將數據批量插入到數據庫。如果我保留其原始編碼,則不會向數據庫插入任何內容。批量插入中文字符

任何人都知道是否存在任何腳本,如python或powershell,可以自動將數據文件從utf-8編碼轉換爲unicode並保持中文字符不變。 謝謝。

+1

注:UTF-8是Unicode的編碼。 Windows記事本錯誤地將「UTF-16 LE」標記爲「Unicode」。 –

+1

那麼,您正在尋找一種從UTF-8轉換爲UTF-16 LE/Unicode的自動化方式? –

回答

0

要使用Python轉換UTF-8的文件,可能帶有UTF-8 BOM,爲UTF-16-LE:

import io 
with io.open("my_input_file.txt", "r", encoding="utf-8-sig") as my_input: 
    with io.open("my_output_file.txt", "w", encoding="UTF-16-LE") as my_output: 
     my_ouput.write(u"\uFEFF") # write a UTF BOM 
     my_ouput.write(my_input.read()) 
+0

謝謝Alastair,你的回答對我來說真的很有用。 – simon