2015-11-30 2 views
0

Я хочу, чтобы вставлять файл данных csv, содержащий китайские символы, в sql-сервер 2012. Исходная кодировка файла данных csv - utf8, а файл fmt создается с помощью инструмента bcp. вопрос заключается в том, что если я конвертирую кодировку файла данных csv из utf8 в unicode через блокнот (откройте файл данных с помощью блокнота, затем выберите «сохранить как» и выберите формат «Юникод»), я могу навалом вставить данные в базу данных , И если я сохраню исходную кодировку, в базу данных ничего не будет добавлено.объемная вставка с китайским символом

Любой знает, существует ли какой-либо скрипт, такой как python или powershell, можно автоматизировать преобразование файла данных из кодировки utf-8 в unicode и сохранить китайские символы без изменения. спасибо.

+1

Примечание: UTF-8 представляет собой кодирование Unicode. Блокнот Windows ошибочно называет «UTF-16 LE» как «Unicode». –

+1

Итак, вы ищете автоматический способ конвертировать из UTF-8 в UTF-16 LE/Unicode? –

ответ

0

Чтобы преобразовать документ UTF-8, возможно, с UTF-8 BOM, чтобы UTF-16-LE с помощью Python:

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

Смежные вопросы