Excel zerstört Sonderzeichen beim Speichern als CSV

21

Ich arbeite an einem Projekt, das eine vom Client bereitgestellte CSV-Datei zum Auffüllen einer Datenbank verwendet. Der Client erstellt die Tabelle und speichert sie als hochzuladende CSV, die dann in eine Datenbank geparst wird.

Das Problem besteht darin, dass immer, wenn der Client die Excel-Tabelle als MS-DOS-CSV-Datei speichert, viele Sonderzeichen in Fragezeichen "?" (Symbole wie '"/). Wenn wir dann jedoch die CSV-Datei öffnen und jedes? manuell durch das richtige Zeichen ersetzen, funktioniert es einwandfrei.

Das Problem ist, dass die Datendatei RIESIG ist und wir dies nicht vernünftigerweise tun können. Ich hatte gehofft, dass es einen Weg gibt, sie zu speichern. Wir haben versucht, als Unicode und ASCII ohne Erfolg zu exportieren. Wir haben auch versucht, Dokumente in Google Docs hochzuladen und erneut zu speichern. Diese Zeichen werden jedoch ebenfalls beschädigt.


quelle
2
Wenn Sie mit Excel 2007 arbeiten, befindet sich im Dialogfeld "Datei speichern unter" links neben der Schaltfläche "Speichern" ein Dropdown-Menü "Extras". Wenn Sie "Weboption" auswählen und auf der Registerkarte "Codierung" eine bestimmte Codierung auswählen. Versuchen Sie, ob dies hilfreich ist
Was ist ein Beispiel für diesen Text?
Enderland
1
Das Problem ist nicht reproduzierbar. Stellen Sie sicher, dass die Daten tatsächlich das sind, was Sie beschreiben, und nicht einige Zeichen, die in der MS-DOS-Codierung nicht dargestellt werden können.
Jukka K. Korpela

Antworten:

11

Stellen Sie sicher, dass Sie als CSV (Comma Delimited)und nicht CSV (MS-DOS)als speichern , da DOS UTF-8-Zeichen nicht unterstützt.

ƬᴇcƬᴇιʜ007
quelle
6

Ich habe festgestellt, dass das Problem mit verlorenen Zeichen (in meinem Fall) nur beim Speichern vom XLSX-Format in das CSV-Format auftritt. Ich habe versucht, die xlsx-Datei zuerst in xls und dann in csv zu speichern. Es hat tatsächlich funktioniert.

Eric
quelle
Das funktioniert bei mir nicht. Bekomme ich noch? in csv file
thanos.a
4

Eine mögliche Problemumgehung ist das Speichern unter Unicode Text(2007 hat es, nicht sicher über frühere Ausgaben), die es als tabulatorgetrennte Textdatei speichert.

Diese Datei hat meine Unicode-Zeichen beibehalten (in meinem Fall habe ich mit asiatischen Zeichen gearbeitet ) und dabei eine Art begrenzte Textdatei erstellt, die Sie dann mit externen Tools ausführen können, um sie bei Bedarf in eine CSV-Datei zu konvertieren.

In meiner Eingabe waren jedoch nicht in jeder Zelle Registerkarten eingebettet, und ich bin nicht sicher, wie damit umgegangen werden soll.

MxLDevs
quelle
3

Folgendes funktioniert bei mir:

  1. Nehmen Sie Datenkorrekturen in Excel oder CSV vor
  2. Datei als Unicode-Text speichern
  3. Öffnen Sie NOTEPAD
  4. Öffnen Sie die gerade mit NOTEPAD gespeicherte Unicode-Datei
  5. Markieren Sie mit dem Cursor einen leeren Bereich mit einer einzelnen Registerkarte 5a. Verwenden Sie das Leerzeichen zwischen der Acquire-ID und dem Anforderungstyp, da dies EIN TAB enthält!
  6. Drücken Sie Cnrl-C, um das Tabulatorzeichen zu kopieren
  7. Geben Sie Cnlr-H ein, um das Funktionsfeld Ersetzen zu öffnen
  8. Klicken Sie in das Textfeld Suchen nach und geben Sie Cnlr-V ein, um die Registerkarte einzufügen
  9. Klicken Sie in das Feld Ersetzen durch Text und geben Sie ein Komma ein
  10. Klicken Sie auf Ersetzen, um es einmal zu testen. Bestätigen Sie, dass die Registerkarte in der Datei durch ein Komma ersetzt wird
  11. Klicken Sie auf Alle ersetzen
  12. Klicken Sie auf Abbrechen
  13. Speichern Sie die Datei und beenden Sie sie
  14. Ändern Sie im Windows Explorer die Dateierweiterung in .csv
Pat HIll
quelle
1
Dies funktionierte für mich mit Notepad ++.
ChrisB
Ja, ich musste als Unicode exportieren und auch Tabulatoren in Kommas suchen und ersetzen.
nilloc
2

Ich habe dieses Problem schon eine Weile und habe endlich einige Zeit darauf verwendet, es herauszufinden! Ich konnte das Problem (anscheinend) beheben, indem ich es als "Windows Comma Separated (.csv)" speicherte. Ich habe es mit einer XLSX- und einer XLS-Datei versucht, die beide problemlos in eine CSV-Datei konvertiert wurden. Ich hoffe, dies hilft - lassen Sie mich wissen, wenn Probleme mit dieser Methode auftreten. Ich melde mich, wenn ich in den nächsten Wochen etwas sehe.

Courtney Lowe
quelle
1
Willkommen bei Super User. Schön zu sehen, dass Sie direkt einspringen, um Fragen zu beantworten.
CharlieRB
1

Lösung:

  1. Öffnen Sie Ihre CSV-Datei im Editor (Sie werden feststellen, dass dort ANSI steht), und speichern Sie sie dann als UTF-8 im Editor.

  2. Dann sollte der Import funktionieren. Wenn Sie es jedoch erneut in Excel öffnen und nur speichern, funktioniert es nicht, da Excel anscheinend nicht in UTF-8 kodieren kann.

  3. Die andere Möglichkeit besteht darin, mit Ihrer CSV-Datei in www.LibreOffice.org (kostenlos) zu arbeiten, die in UTF-8 korrekt codiert werden kann (ich habe dies jedoch nicht selbst ausprobiert).

Ich bin auf ein ähnliches Problem beim Importieren einer CSV-Datei mit Produkten mit Brüchen in WooCommerce gestoßen, die aufgrund von "?" Fehlerzeichen. Dies liegt daran, dass die CSV-Datei nicht in UTF-8 codiert wurde. Trotzdem funktionierte die CSV-Datei nach dem Speichern in Excel mit UTF-8-Codierung immer noch nicht.

Nach dem Durchsuchen mehrerer Foren scheint es, dass Excel zwar die Option zum Codieren als UTF-8 bietet - beim SPEICHERN ALS CSV konvertiert Excel diese automatisch zurück in ANSI, obwohl Sie UTF-8 auswählen.

Hen_za
quelle
1
  1. Laden Sie das Unicode CSV-Add-In für Excel von https://github.com/jaimonmathew/Unicode-CSV-Addin herunter und installieren Sie es
  2. Speichern Sie die CSV-Datei aus dem neuen "Unicode CSV" -Menü, wie in der folgenden Abbildung dargestellt.

Bildbeschreibung hier eingeben

thanos.a
quelle
1
Würden Sie bitte einen Link zu diesem Add-In posten?
Xavier Poinas
Ich habe die Antwort aktualisiert, um die Github-Seite einzuschließen. Dort finden Sie die Download-Seite
thanos.a
0

Sogar ich hatte das Problem mit Sonderzeichen beim Herunterladen der japanischen Begriffe im CSV-Format. Als ich die CSV-Datei im Textformat (durch Tabulatoren getrennt) speicherte, waren die japanischen Zeichen perfekt ausgefüllt. Dann habe ich einfach Daten aus einer Textdatei kopiert und in eine Tabelle eingefügt. Gut gearbeitet!!!

Danke, Vaishakh

Vaishakh
quelle
Dies gibt keine Antwort auf die Frage. Wenn Sie einen Autor kritisieren oder um Klärung bitten möchten, hinterlassen Sie einen Kommentar unter seinem Beitrag. Sie können jederzeit Ihre eigenen Beiträge kommentieren. Wenn Sie über eine ausreichende Reputation verfügen, können Sie jeden Beitrag kommentieren .
Ramhound
0

Die beste Lösung aller Zeiten gefunden: http://woshka.com/blog/microsoft/microsoft-excel/solve-the-problem-saving-excel-csv-format-with-utf-8-unicode-encoding.html

Vom Link:

1-Klicken Sie auf das Startmenü

2-Wählen Sie das Bedienfeld

3-Suchen Sie im klassischen Modus nach Regions- und Sprachoptionen, oder geben Sie den Namen in die Suchleiste oben rechts im Fenster des Bedienfelds ein

4-Klicken Sie auf die Registerkarte Erweitert und dann auf Gebietsschemas

5-Klicken Sie auf Persisch oder Arabisch oder auf Ihr gewünschtes UTF-08-Codierungsprogramm, das Sie mit Excel in CSV speichern möchten

James Ricardoson
quelle
woshka.com ist keine gültige URL mehr, es ist im Moment eine geparkte Domain.
Craig London
0

für die ™ habe ich eine lösung gefunden. Ersetzen Sie in der XLSX-Datei alle Zeichen "™" durch "& tr-ade;". Entfernen Sie das - vom Ersetzen durch. Speichern Sie die Datei als .csv und alles ist erledigt. wünschte, es funktioniert für dich.

Mathieu
quelle
0

Auf einem Mac-Computer funktionierte das für mich.

Wählen Sie in Excel Speichern unter und dann in der Dropdown-Liste Windows CSV (Comma Separated).

Es funktioniert einfach !!!

Manuel Lema
quelle
0

Als Unicode speichern Benenne die Unicode-Datei um als .csv ( https://www.youtube.com/watch?v=1VP8__shxTg )

Webmax
quelle
Willkommen bei Super User! Während dies theoretisch die Frage beantworten mag, wäre es vorzuziehen , die wesentlichen Teile der Antwort hier aufzunehmen und den Link als Referenz bereitzustellen.
Bertieb