Jquery忽略编码ISO-8859-1

Spi*_*050 10 javascript jquery content-type iso-8859-1 character-encoding

我有一个网站,它从字符串中删除正确的编码(ISO-8859-1)并发送错误.

我在HTML中指定了此编码

<meta charset="ISO-8859-1">
Run Code Online (Sandbox Code Playgroud)

我通过加载我的JavaScript

<script type="text/javascript" charset="ISO-8859-1" src="...
Run Code Online (Sandbox Code Playgroud)

我通过JQuery Ajax Request发送信息(带有德语特殊字符'ö'和'ä'):

$.ajax({
    url: '..',
    type: 'POST',
    contentType: 'application/xml;charset=ISO-8859-1',
    data: xmlRequest.html(),...
Run Code Online (Sandbox Code Playgroud)

这被转换为请求,在Chrome开发人员工具中,我在请求标题中看到了这一点:

..
Content-Type: application/xml;charset=UTF-8
..
Run Code Online (Sandbox Code Playgroud)

那里发生了什么?

当然特殊字符编码错误("Ã"而不是"ö")服务器无法理解我,我得到一个错误.

iap*_*dev 29

因为我有同样的问题,我会提供一个适合我的解决方案.背景:Microsoft Excel太愚蠢了,无法在字符集UTF-8中导出CSV文件:

$.ajax({
    url: '...',
    contentType: 'Content-type: text/plain; charset=iso-8859-1',
    // This is the imporant part!!!
    beforeSend: function(jqXHR) {
        jqXHR.overrideMimeType('text/html;charset=iso-8859-1');
    }
});
Run Code Online (Sandbox Code Playgroud)


JMM*_*JMM 6

根据jQuery.ajax() contentType文件:

数据将始终使用UTF-8字符集传输到服务器; 你必须在服务器端适当地解码它."

  • 根据同一文档页面,"根据W3C XMLHTTPRequest标准,POST数据将始终使用UTF-8字符集传输到服务器." (2认同)