如何通过带有ISO-8859-1字符集而不是utf-8的encodeURIComponent编码请求变量?

时间:2011-01-09 22:48:31

标签: javascript

我在网站上使用ISO-8859-1 charset。 请求应部分由encodeURIComponent()编码,但此函数使用utf-8进行编码。

如何通过带有ISO-8859-1字符集的encodeURIComponent编码请求变量而不是utf-8?(或使用ISO-8859-1或其他方式进行编码的其他函数)。

更新: 也许在这种情况下使用escape()js函数poper选项?

谢谢, 约瑟夫

2 个答案:

答案 0 :(得分:0)

我已经制作了script for escaping Windows-1250个字符。您可以自己创建翻译表,也可以使用我使用的translation table generation script从维基百科生成翻译表。该脚本至少应该在IE 7,FF 3.6和Opera 11上运行(尚未在其他浏览器上测试过)。

jQuery的示例代码:

var sBaseUrl = 'ajax.script.php';
var oData = {
    some_param : 'Zażółć gęślą jaźń',
    other_param : '1',
};

// build url
var url = localBuildURL(sBaseUrl, oData);

// get
$.ajax({
    url: url,
    dataType: 'text',   // JSON doesn't always parse...
    success: function(txt, status, xhr)
    {
        // do something with txt
        // or parse with: data = $.parseJSON(txt);
    }
});

编辑实际上...... ISO-8591-1不需要转换表。其中的所有字符仅为一个字节。 escape功能应该足够了。

答案 1 :(得分:-2)

你应该没事。我认为ISO-8859-1完全封装在UTF-8中,没有任何问题。