Файл CSV немного беспорядок. Похоже, что поля разделены вкладками и ничем не заключены. Это может быть хорошо для простых данных, но когда вы начнете вводить HTML, у вас возникнут проблемы - глядя на один из ваших других вопросов s, похоже, что анализатор CSV запутывается и разбивает одно поле HTML на несколько - это, кажется, происходит каждый раз, когда он встречает вкладку (и, возможно, также двойные кавычки?)
Можете ли вы изменить формат файла CSV? Я бы посоветовал вам использовать запятые для разделения полей и определить символ вложения (например, двойные кавычки) для более сложных строк, таких как HTML - я думаю, что вам необходимо убедиться, что любые двойные кавычки в строке также убежали. Также имейте в виду, что вам может потребоваться удалить или избежать разрывов строк внутри этих строк в зависимости от того, что их анализирует, но я не совсем уверен в этом.
Изменить после вашего комментария
Вам не нужно беспокоиться о строке, содержащей разделитель, если она заключена в символ. Если вам нужна строка, содержащая три поля и три строковых значения:
String1
String2
Stri,ng3
Следующий недействителен и будет виден синтаксическим анализатором как четыре поля
String1,String2,Stri,ng3
Следующее является действительным, поскольку разделитель «заключен» в двойную кавычку
"String1", "String2", "Stri,ng3"
Это становится сложнее, когда вы хотите использовать двойные кавычки в строке - тогда нужно будет избежать этого. Если вы хотите представить
String1
String"2
поле CSV может быть экранировано как
"String1", "String\"2"
Если я правильно помню, вы импортировали в MySQL с помощью LOAD DATA ?, так что для приведенных выше примеров вы можете использовать такие параметры, как
FIELDS TERMINATED BY ',' ENCLOSED BY '"' ESCAPED BY '\\'
Я не уверен, как MySQL будет обрабатывать разрывы строк в закрытых строках, я не могу найти много об этом. Если он читает файл построчно, могут возникнуть проблемы.
Редактировать 2
Если оставшиеся проблемы связаны с разрывом строки, вы можете заменить строку \n
на \\n
и \r
на \\r
в коде, который экспортирует каждое поле в CSV