批量插入中文字符

问题描述:

我想批量插入一个包含中文字符的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的自动化方式? –

要使用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