Chrome 72+ теперь обрезает наши данные по первому знаку символа #.
https://bugs.chromium.org/p/chromium/issues/detail?id=123004#c107
Мы использовали временный тег привязки вместе с атрибутом download и hrefАтрибут со строкой CSV для загрузки CSV-данных на странице на компьютеры пользователей.Теперь это не работает в недавнем обновлении Chrome, потому что все данные после первого знака # извлекаются из загруженного CSV.
Мы можем обойти это, заменив # на «num» или другие данные, но это оставляетнаши csv / excel файлы с различными данными, которых мы бы хотели избежать.
Можно ли как-нибудь обойтись, чтобы Chrome не удалял данные в href при загрузке файла?
let csvContent = "data:text/csv;charset=utf-8,";
let header = "Col1, Col2, Col3";
csvContent += header + "\r\n";
csvContent += "ac, 123, info here" + "\r\n";
csvContent += "dfe, 432, #2 I break" + "\r\n";
csvContent += "fds, 544, I'm lost due to previous number sign";
var encodedUri = encodeURI(csvContent);
var link = document.createElement("a");
link.setAttribute("href", encodedUri);
link.setAttribute("download", "file.csv");
document.body.appendChild(link);
link.click();
Я попытался заменить #
на Unicode-символ ⌗
, который был достаточно близко и хорошо выглядел в CSV, но Excel не понравился Unicode-символы