2017-05-31 4 views
0

Ich habe eine Reihe von CSV-Dateien und ich stieß auf einen Fall, wo seltsamerweise '\' utf8 vor Unicode sind Zeichen zMySQL Fehlercode: 1300. Ungültige utf8 Zeichenkette: '' mit '' vor Unicode Zeichen

Tom;\Éscobar;123 

und wenn eine Masseneinfügung über tun:

LOAD DATA LOCAL INFILE 'test.csv' 
INTO TABLE TEST_TABLE 
CHARACTER SET 'utf8' 
FIELDS TERMINATED BY ';' 
ENCLOSED BY '"'; 

den Fehler: Ungültige UTF8 Zeichenfolge: '' geworfen wird. Ich frage mich, ob dies ein Fehler in MySQL LOAD DATA ist oder wenn ich etwas hier vermisse.

MySQL-Version 5.7.16 
+0

Es klingt wie die Datei falsch codiert wurde. Kannst du das Hex für diese Linie bekommen? –

+0

Die ursprüngliche Zeile war: \ in hex seine 5c67315764. Ich kann es mit irgendeiner Kombination \ + [irgendein Unicode-Zeichen] reproduzieren. Die Datei ist in utf8 codiert –

+0

Hmmm ... Kein 'CHARACTER SET' behandelt' 5c67315764' als '\ 朱坤'. –

Antwort

0

Wenn Sie herausfinden können, was das Muster ist, ...

  1. Last der CSV in VARBINARY oder BLOB Spalte (n).
  2. führen Sie eine SQL, wahrscheinlich mit der REPLACE() Funktion, um die Daten zu bereinigen (entfernen Sie die Blackslashes).
  3. tun Sie eine geeignete ALTER, wahrscheinlich MODIFY COLUMN ... VARCHAR(...) CHARACTER SET utf8mb4, um es in ein Textformat zu bekommen.
Verwandte Themen