Jquery 强制浏览器以ISO-8859-1而非UTF-8的形式发送post数据

Jquery 强制浏览器以ISO-8859-1而非UTF-8的形式发送post数据,jquery,ajax,post,utf-8,iso-8859-1,Jquery,Ajax,Post,Utf 8,Iso 8859 1,我必须向无法解码UTF-8数据的服务器(使用CICS TS 2.1的IBM z/VSE)发送post请求 因此,我必须强制浏览器或javascript ajax post调用不转换为UTF-8。他通过在jqueryajax调用中设置自己的contentType,从contentType头中删除charset=UTF-8字符串,我已经成功了。所以服务器已经认为它是ISO-8859-1,他可以解码成EBCDIC。但在德国Umlaute我仍然有问题。例如“HALLÖ”。因为浏览器在发送之前仍会转换为U

我必须向无法解码UTF-8数据的服务器(使用CICS TS 2.1的IBM z/VSE)发送post请求

因此,我必须强制浏览器或javascript ajax post调用不转换为UTF-8。他通过在jqueryajax调用中设置自己的contentType,从contentType头中删除charset=UTF-8字符串,我已经成功了。所以服务器已经认为它是ISO-8859-1,他可以解码成EBCDIC。但在德国Umlaute我仍然有问题。例如“HALLÖ”。因为浏览器在发送之前仍会转换为UTF-8:

        let data = $('#customerForm').serialize();
        let url = "http://192.168.200.1:7080/cics/CWBA/mypgm";

        data = data + '&action=save&segment=cusadr&lfnr=01';

        $.ajax({
          type: "POST",
          url: url,
          data: data,
          contentType: "application/x-www-form-urlencoded",
          success: function(data) {
            console.log(data);

            if (resp.code != "0000") {
              app.$data.errorMsg = resp.data;
            }
          }
        });

我怎样才能在ISO-8859-1中发布这个帖子呢?

我知道这个问题是在两年前发布的,但似乎没有人后续记录这个直截了当、简单的答案。这就是答案

似乎巧合的是,就在Andi S发布这个问题的同一天,IBM公开宣布了z/VSE 6.2。z/VSE 6.2及其附带的CICS事务服务器版本(2.2版)于2017年12月1日正式发布。CICS Transaction Server 2.2版for z/VSE向CICS通道和容器API添加了UTF-8和UTF-16支持。z/VSE SOAP引擎和新的z/VSE REST引擎继承了这种支持。对于任何中间转换步骤,应该不再有任何要求

虽然z/VSE 6.1在2019年6月30日达到IBM的End of(标准)支持,但对于那些仍在运行先前版本的z/VSE和CICS的人来说,他们还没有完全准备好将所有内容移动到最新版本,可以在先前版本的同时运行CICS Transaction Server 2.2 for z/VSE,并将它们连接起来。可能最简单的方法是使用一对LPAR(或z/VM客户机),一个运行最新的CICS版本,支持UTF-8和UTF-16,充当“网关”,另一个运行CICS应用程序的互连旧版本。然后,您可以尽可能快地将程序转移到新的、更新的LPAR或z/VM客户机上,但您不必等待较旧版本的环境完全升级以支持UTF-8和UTF-16互操作性


即使您仍在运行z/VSE 6.1之前的z/VSE版本,如果需要,这种“混合CICS版本”方法也应该可以正常工作。(只要您使用的是两个/所有CICS环境都支持的“最低公分母”互连选项之一,CICS在版本之间甚至平台之间都没有特定的互连限制。)请注意,IBM在2017年初结束了“单版本收费”限制。当然,请与IBM进行仔细检查,但是运行两个或多个版本的z/VSE和CICS不应收取额外费用,直到您的程序升级到最新版本为止。

在服务器上使用代理更改字符集并发出请求。找到客户端解决方案会很好。已在使用escape()进行操作。但是没有成功,我们同时在z/vse6.2上。TS和UTF8有时仍然会遇到一些问题,但还没有时间解决。目前,我正在使用通道和容器将UTF-8字符串转换为EBCDIC