JavaScript Fetch: characters with encoding issues(JavaScript Fetch:有编码问题的字符)
问题描述
我正在尝试使用 Fetch 将一些数据带入屏幕,但是一些字符显示出奇怪的符号,我认为这与转换特殊字符有关.
I'm trying to use Fetch to bring some data into the screen, however some of the characters ares showing a weird � sign which I believe has something to do with converting special chars.
在服务器端调试或在浏览器上调用 servlet 时,问题不会发生,因此我认为问题出在我的 JavaScript 上.请看下面的代码:
When debugging on the server side or if I call the servlet on my browser, the problem doesn't happen, so I believe the issue is with my JavaScript. See the code below:
var myHeaders = new Headers();
myHeaders.append('Content-Type','text/plain; charset=UTF-8');
fetch('getrastreiojadlog?cod=10082551688295', myHeaders)
.then(function (response) {
return response.text();
})
.then(function (resp) {
console.log(resp);
});
我认为这可能是一些细节,但我还没有设法找出发生了什么.所以欢迎任何提示谢谢
I think it is probably some detail, but I haven't managed to find out what is happening. So any tips are welcome Thx
推荐答案
response 的 text() 函数总是将 payload 解码为 utf-8.
The response's text() function always decodes the payload as utf-8.
如果您想要其他字符集中的文本,您可以使用 TextDecoder 转换 响应缓冲区 (NOT文本)转换为具有所选字符集的解码文本.
If you want the text in other charset you may use TextDecoder to convert the response buffer (NOT the text) into a decoded text with chosen charset.
使用您的示例应该是:
var myHeaders = new Headers();
myHeaders.append('Content-Type','text/plain; charset=UTF-8');
fetch('getrastreiojadlog?cod=10082551688295', myHeaders)
.then(function (response) {
return response.arrayBuffer();
})
.then(function (buffer) {
const decoder = new TextDecoder('iso-8859-1');
const text = decoder.decode(buffer);
console.log(text);
});
请注意,我使用 iso-8859-1
作为解码器.
Notice that I'm using iso-8859-1
as decoder.
致谢:施耐德博客
这篇关于JavaScript Fetch:有编码问题的字符的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:JavaScript Fetch:有编码问题的字符
- addEventListener 在 IE 11 中不起作用 2022-01-01
- 如何使用 JSON 格式的 jQuery AJAX 从 .cfm 页面输出查 2022-01-01
- 400或500级别的HTTP响应 2022-01-01
- Flexslider 箭头未正确显示 2022-01-01
- CSS媒体查询(最大高度)不起作用,但为什么? 2022-01-01
- Css:将嵌套元素定位在父元素边界之外一点 2022-09-07
- Fetch API 如何获取响应体? 2022-01-01
- Quasar 2+Apollo:错误:找不到ID为默认的Apollo客户端。如果您在组件设置之外,请使用ProvideApolloClient() 2022-01-01
- 失败的 Canvas 360 jquery 插件 2022-01-01
- 使用RSelum从网站(报纸档案)中抓取多个网页 2022-09-06