Я получаю файл данных в ETL от клиента, и мы загружаем данные в базу данных Mysql, используя функциональность Load Data file, и используем CHARACTER SET как utf8.
LOAD DATA LOCAL INFILE '${filePath}'
INTO TABLE test_staging
CHARACTER SET 'utf8'
FIELDS TERMINATED BY '|'
LINES TERMINATED BY '\n'
(${testcolumns}) SET
first_name = @first_name;
Данные от клиента
1|"test"|"name"|2
2|"asdf"|asdf&test|2
3|fun|value|2
Когда я загружаю вышеуказанные данные в базу данных, и она вставляется непосредственно в виде строк вместо преобразования в символы HTML
Данные базы данных
id first_name last_name
1 "test" "name"
2 "asdf" asdf&test
3 fun value
Я попытался изменить значение CHARACTER SETот utf8 до latin1 , но результат тот же.
Я также пытался заменить специальные символы при загрузке данных в базу данных, но проблема в том, что я получаю все типыHTML символов данных в файле.Я не могу продолжать добавлять функцию замены для всех из них.
LOAD DATA LOCAL INFILE '${filePath}'
INTO TABLE test_staging
CHARACTER SET 'utf8'
FIELDS TERMINATED BY '|'
LINES TERMINATED BY '\n'
(${testcolumns}) SET
first_name = REPLACE(REPLACE(REPLACE(first_name,''','\''),'"','"'),'&','&');
Существует ли какой-либо набор символов, который преобразует HTML-данные и правильно загружает?
Ожидаемые данные базы данных
id first_name last_name
1 "test" "name"
2 "asdf" asdf&test
3 fun value
Любая помощь приветствуется ... Спасибо