Почему SQL Management Studio выводит символы, разделенные нулями, при сохранении в формате csv? - PullRequest
1 голос
/ 16 октября 2008

и можно ли его настроить так, чтобы оно не происходило?

Я обычно сохраняю результат запроса в виде .csv и обрабатываю его позже на моей машине с Unix. Символы, разделенные нулями, заставляют меня фильтровать эти символы, и это немного болезненно.

Итак, вот вопросы:

  • Почему это так?

EDIT:

Потому что он выводит в UTF-16 по умолчанию. Тогда самое простое преобразование будет:

iconv -f utf-16 -t utf-8 origFile.csv > newFile.csv
  • Можно ли его как-то отключить? Как?

Вот кусок шестнадцатеричного файла, сгенерированного таким образом. Каждый символ сопровождается нулевой символ (00):

00000cf0  36 00 36 00 32 00 0d 00  0a 00 36 00 38 00 34 00  |6.6.2.....6.8.4.|
00000d00  30 00 36 00 32 00 31 00  36 00 0d 00 0a 00 36 00  |0.6.2.1.6.....6.|
00000d10  38 00 34 00 30 00 36 00  33 00 36 00 34 00 0d 00  |8.4.0.6.3.6.4...|
00000d20  0a 00 36 00 38 00 34 00  30 00 36 00 38 00 34 00  |..6.8.4.0.6.8.4.|
00000d30  32 00 0d 00 0a 00 36 00  38 00 34 00 30 00 37 00  |2.....6.8.4.0.7.|
00000d40  30 00 32 00 31 00 0d 00  0a 00 36 00 38 00 34 00  |0.2.1.....6.8.4.|
00000d50  30 00 37 00 37 00 39 00  37 00 0d 00 0a 00 36 00  |0.7.7.9.7.....6.|
00000d60  38 00 34 00 30 00 37 00  39 00 32 00 31 00 0d 00  |8.4.0.7.9.2.1...|
00000d70  0a 00 36 00 38 00 34 00  30 00 38 00 32 00 34 00  |..6.8.4.0.8.2.4.|
00000d80  31 00 0d 00 0a 00 36 00  38 00 34 00 30 00 38 00  |1.....6.8.4.0.8.|
00000d90  36 00 36 00 31 00 0d 00  0a 00 36 00 38 00 34 00  |6.6.1.....6.8.4.|
00000da0  30 00 38 00 37 00 35 00  31 00 0d 00 0a 00 36 00  |0.8.7.5.1.....6.|
00000db0  38 00 34 00 31 00 30 00  32 00 35 00 34 00 0d 00  |8.4.1.0.2.5.4...|
00000dc0  0a 00 36 00 38 00 34 00  31 00 30 00 34 00 34 00  |..6.8.4.1.0.4.4.|

Ответы [ 3 ]

6 голосов
/ 16 октября 2008

Файл выводится в Юникоде, а не в ASCII. Unicode использует вдвое больше битов для представления каждого символа, следовательно, предыдущие 00.

Возможно, существует вариант сохранения в формате ANSI или ASCII, в котором должны использоваться 8-битные символы.

2 голосов
/ 19 января 2010

Я знаю, что это старый пост ... но для новых посетителей ...

Когда вы сохраняете данные из Microsoft SQL Management Studio, вы заметите, что кнопка «Сохранить» имеет небольшую стрелку рядом с ней. Если вы выберете маленькую стрелку, вы можете выбрать «Сохранить с кодировкой ...», это позволит вам выбрать желаемую кодировку.

1 голос
/ 16 октября 2008

В Unix я предлагаю использовать iconv -futf-16le -tutf-8 для фильтрации вашего вывода. : -)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...