blob对象打开编码格式为utf-8的.txt文件乱码,响应头中加入了编码格式依旧乱码,不更改浏览器配置
时间: 2023-08-23 08:30:17 浏览: 738
如果在使用 Blob 对象打开编码格式为 UTF-8 的 .txt 文件时出现乱码,即使在响应头中加入了编码格式,也依旧乱码,同时又不希望更改浏览器配置的话,可以尝试以下方法解决:
1. 使用 FileReader 对象将 Blob 对象转化为文本内容。可以使用 FileReader 对象的 readAsText 方法将 Blob 对象转化为文本内容,然后再将文本内容插入到 HTML 页面中以显示文本内容。示例代码如下:
```javascript
var reader = new FileReader();
reader.readAsText(blob, 'utf-8');
reader.onload = function(event) {
var text = event.target.result;
// 将文本内容插入到 HTML 页面中以显示文本内容
};
```
2. 将文本内容转化为 Blob 对象并使用 URL.createObjectURL 方法生成 Blob 对象的 URL 地址。可以使用 Blob 对象的构造函数创建新的 Blob 对象,然后再使用 URL.createObjectURL 方法生成 Blob 对象的 URL 地址,最后将 URL 地址赋值给 a 标签的 href 属性以下载文件。示例代码如下:
```javascript
var text = '这是一个 UTF-8 编码的文本内容';
var blob = new Blob([text], {type: 'text/plain;charset=utf-8'});
var url = URL.createObjectURL(blob);
var a = document.createElement('a');
a.href = url;
a.download = 'text.txt';
document.body.appendChild(a);
a.click();
document.body.removeChild(a);
URL.revokeObjectURL(url);
```
以上是在不更改浏览器配置的情况下解决 Blob 对象打开编码格式为 UTF-8 的 .txt 文件乱码的两种方法,根据具体情况选择适合自己的方法即可。
阅读全文