Jquery忽略编码ISO-8859-1
我有一个网站,它从字符串中删除正确的编码(ISO-8859-1)并发送错误。
我在我的HTML中指定了此编码
我通过加载我的JavaScript
<script type="text/javascript" charset="ISO-8859-1" src="...
我通过JQuery Ajax Request发送信息(带有德语特殊字符’ö’和’ä’):
$.ajax({ url: '..', type: 'POST', contentType: 'application/xml;charset=ISO-8859-1', data: xmlRequest.html(),...
这被转换为请求,在Chrome开发人员工具中,我在Request Header中看到了这一点:
.. Content-Type: application/xml;charset=UTF-8 ..
那里发生了什么?
当然特殊字符编码错误(“¶”而不是“ö”)服务器无法理解我,我得到一个错误。
因为我有同样的问题,我会提供一个适合我的解决方案。 背景: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'); } });
根据jQuery.ajax()
contentType
文档 :
数据将始终使用UTF-8字符集传输到服务器; 你必须在服务器端适当地解码它。“