带有中文字符的批量插入

时间:2015-11-30 13:46:16

标签: encoding utf-8 insert bulk

我想将包含中文字符的csv数据文件批量插入sql server 2012.csv数据文件的原始编码为utf8,fmt文件由bcp工具生成。问题是,如果我通过记事本将csv数据文件的编码从utf8转换为unicode(用记事本打开数据文件,然后选择'另存为'并选择' unicode'格式),我可以批量插入数据到数据库。如果我保留其原始编码,则不会将任何内容插入数据库。

任何人都知道是否存在任何脚本,例如python或powershell,可以自动将数据文件从utf-8编码转换为unicode并保留中文字符而不更改。 感谢。

1 个答案:

答案 0 :(得分: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() )