You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在JavaScript中解析含德语特殊字符的RSS并正确显示

解决德语特殊字符转义问题的方法

不用手动替换转义字符,通过调整XMLHttpRequest的编码设置就能解决,具体操作如下:

  • 删掉代码里的 xhrRequest.setRequestHeader("Content-Type", "text/xml");——这个请求头是给POST请求设置请求体编码用的,GET请求完全不需要,留着反而可能干扰响应的编码解析。
  • 在调用send()之前,添加overrideMimeType方法,强制指定响应的编码为UTF-8。

修改后的代码示例:

var url = 'https://apolut.net/feed/podcast/'

xhrRequest = new XMLHttpRequest();
xhrRequest.onreadystatechange = function() {
    if (xhrRequest.readyState == 4) {
        // 此时responseText里的德语特殊字符会正常显示
        console.log(xhrRequest.responseText);
    }
}
xhrRequest.onerror = function(e) { 
   
};
xhrRequest.open('GET', url);
// 强制指定响应编码为UTF-8
xhrRequest.overrideMimeType('text/xml; charset=utf-8');
xhrRequest.send();

另外还有个更省心的方案:直接用xhrRequest.responseXML获取解析后的XML文档,而非responseText。因为RSS本身是XML格式,responseXML会自动正确解析文档中的特殊字符,直接操作XML节点就能拿到正常显示的文本内容。

原理说明:如果服务器返回的响应头未正确声明UTF-8编码,XMLHttpRequest可能会用默认编码解析响应,导致特殊字符被转义成Unicode序列。overrideMimeType可以强制xhr按照指定编码解码响应内容,从而保留原始的德语特殊字符。

内容的提问来源于stack exchange,提问作者Toniq

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.03 05:23:24