The MySQL LOAD DATA statement can certainly handle all of that not sure why you think otherwise?
MySQL :: MySQL 5.7 Reference Manual :: 13.2.6 LOAD DATA Statement
The [{FIELDS | COLUMNS} [TERMINATED BY 'string'] [[OPTIONALLY] ENCLOSED BY 'char'] [ESCAPED BY 'char'] can handle double quotes.
The SET col_name={expr | DEFAULT} section can be used for date, Boolean or other field conversions as needed.