Warum null SQL Management Studio Ausgabezeichen getrennt, wenn sie als csv speichern?

StackOverflow https://stackoverflow.com/questions/208027

  •  03-07-2019
  •  | 
  •  

Frage

und kann so konfiguriert werden, nicht geschehen?

ich in der Regel zu finden bin ich ein Ergebnis einer Abfrage als CSV speichern und es später auf meinem Unix-Maschine verarbeitet. Die Zeichen null getrennt wird, macht mich diese Zeichen filtern müssen und ist ein bisschen nervig.

Also, das sind die Fragen:

  • Warum ist das so?

EDIT:

Weil es gibt in UTF-16 standardmäßig. Einfachste Umwandlung wäre dann:

iconv -f utf-16 -t utf-8 origFile.csv > newFile.csv
  • Kann es irgendwie deaktiviert werden? Wie?

Hier ist ein Stück eines hexdump einer so erzeugten Datei. Jedes Zeichen wird gefolgt von einem null char (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.|
War es hilfreich?

Lösung

Die Datei wird in Unicode, nicht ASCII ausgegeben. Unicode verwendet doppelt so viele Bits jedes Zeichen darzustellen, damit die vorhergehenden 00 Jahren.

Es könnte eine Option sein, wie ANSI oder ASCII zu speichern, die 8-Bit-Zeichen verwendet werden soll.

Andere Tipps

Ich weiß, das ist eine alte Post ... aber für neue Besucher ...

Wenn Sie Daten aus Microsoft SQL Management Studio speichern, werden Sie feststellen, dass die Schaltfläche ‚Speichern‘ einen kleinen Pfeil neben ihm hat. Wenn Sie auf den kleinen Pfeil klicken Sie ‚Save Mit Encoding ...‘ dies ermöglicht es Ihnen, die Kodierung wählen Sie wünschen.

Auf Unix, schlage ich die Verwendung von iconv -futf-16le -tutf-8 Ihre Ausgabe zu filtern. : -)

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top