上传文件有不同格式,其中若是ppt、world、xlsx格式可以借助后端转换为pdf,使用iframe显示,若上传文件为txt格式,则会有方块字的显示问题,其原因是因为文件不是UTF-8编码,而是GBK编码,中文不支持。 代码解决:
else if (suffix == "txt") {
fetch(baseUrl + row.filePath)
.then(response => response.text())
.then(text => {
// 转换编码,假设文件不是UTF-8编码,而是GBK编码
const convertedText = new TextEncoder().encode(text);
const blob = new Blob([convertedText], { type: 'charset=utf-8' });
const url = URL.createObjectURL(blob);
// 使用转换后的URL设置iframe的src属性
iframeUrl.value = url;
});
}
将文件转为blob格式再设置文件类型转换即可显示成功