Warum null SQL Management Studio Ausgabezeichen getrennt, wenn sie als csv speichern?
-
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.|
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. : -)