Я пытался использовать встроенную функцию dataUtils.downloadFile
из JHipster
на угловой стороне.Он принимает строку содержимого и тип содержимого и позволяет пользователю загружать содержимое в виде файла.
Я заметил, что он может легко обрабатывать содержимое, содержащее символ ASCII
.Однако он не может обработать набор символов UTF-8
.
Это ошибка, которую я получаю:
Не удалось выполнить 'atob' в 'Window'
Я пропалчто-то или есть способ обойти это?
В настоящее время я должен просмотреть свой файл, чтобы заменить все UTF-8
только символы на ASCII
, но это было бы утомительно.
Спасибо за чтение.
РЕДАКТИРОВАТЬ: Ниже приведено определение поля.
{
"fieldName": "troubleshooting",
"fieldType": "byte[]",
"fieldTypeBlobContent": "text"
}
Вот угловой код, который пытается преобразовать строку в base64 и затем загрузить.Проблема не в кодировке base 64.Это хорошо.Проблема с форматом контента.Если содержимое содержит только символы UTF-8, произойдет сбой.В других случаях файл успешно загружен
download(appliance: Appliance) {
const applianceObj = JSON.parse(appliance.troubleShooting);
const prettyPrinted = JSON.stringify(applianceObj, null, 2);
const data = this.base64Utils.encode(prettyPrinted);
this.dataUtils.downloadFile('application/json', data, appliance.applianceType);
}