【问题标题】:Javascript convert string from utf-8 to iso-8859-1Javascript 将字符串从 utf-8 转换为 iso-8859-1
【发布时间】: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 编码,因为这会破坏其他内容。

我已经尝试过这些脚本没有成功:

我可能做错了吗?

编辑: 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


【解决方案1】:

我在一个带有 utf-8 字符集的站点上有一个 HTML 表单,该表单被发送到使用 iso-8859-1 字符集的服务器。

您可以尝试设置表单accept-charset:

<form accept-charset="iso-8859-1">
....
</form>

【讨论】:

  • 我也绑定了这个,看来浏览器只是忽略它并发送utf-8。
  • @Falk:听起来更像是您的ajaxSubmit 插件忽略了它,而不是浏览器。
  • 有可能,我会考虑的。反正问题解决了,终于可以访问服务器了。
  • 我在客户端上使用 utf8 和在服务器上使用 iso8859-1 时遇到了同样的情况,这解决了我的问题
【解决方案2】:

最后,运行该服务器的人允许我们访问该服务器,并且我们制作了一个兼容 utf-8 的 php 脚本。所以我不再关心了。

【讨论】:

    猜你喜欢
    • 2014-07-04
    • 1970-01-01
    • 2020-01-25
    • 2014-08-29
    • 1970-01-01
    • 2023-03-27
    • 2011-12-15
    • 1970-01-01
    相关资源
    最近更新 更多