【发布时间】:2016-07-29 11:17:09
【问题描述】:
我知道这听起来很糟糕,但这是必要的。
我在一个带有 utf-8 字符集的站点上有一个 HTML 表单,该表单被发送到使用 iso-8859-1 字符集的服务器。问题是服务器无法正确理解我们在西班牙使用的字符,例如à, á, è, é, ì, í, ò, ó, ù, ú, ñ, ç 等。因此,如果我搜索 artículo 之类的内容,它会在 artÃculo 中找到任何答案。
我使用 ajaxform (http://malsup.com/jquery/form/) 发送表单,代码如下所示:
$(".form-wrap, #pagina").on("submit", "form", function(event){
event.preventDefault();
$(this).ajaxSubmit({
success: function(data){
$("#temp").html(data);
//Handle data in #temp div
$("#temp").html('');
}
});
return false;
});
我的问题是:我无法访问搜索服务器,我无法将整个网站更改为 iso-8859-1 编码,因为这会破坏其他内容。
我已经尝试过这些脚本没有成功:
- http://phpjs.org/functions/utf8_decode/
- http://phpjs.org/functions/utf8_encode/
- http://ecmanaut.blogspot.com.es/2006/07/encoding-decoding-utf8-in-javascript.html
我可能做错了吗?
编辑: escape 函数对我没有用,因为它将这些空间字符转换为对服务器无用的 % 前缀代码,然后搜索 art%EDculo。
编辑使用服务器理解的encodeURIComponent 函数art%C3%ADculo。附言我只是使用单词artículo 进行测试,但它应该涵盖所有特殊字符的解决方案。
【问题讨论】:
-
尝试旧的
escape对您的字符串进行编码。更好的是,找到运行该服务器的人并hit them with a chicken -
@georg 是的,如果可以的话,我会用一只鸡(但还是一只活鸡)打他,逃跑没有用,因为它会留下以
%为前缀的字符代码。 @matthew-herbst 我不确定它是否真的是重复的,我已经尝试过该问题的答案,但没有帮助。
标签: javascript jquery encoding utf-8 iso-8859-1