从表单编码传递的土耳其字符在浏览器上不同

时间:2014-05-28 19:14:23

标签: java jsp utf-8 struts2 character-encoding

我在链接中讨论过类似的问题。 https://stackoverflow.com/questions/14177914/passing-turkish-char-from-form-to-java-class-with-struts2

<Connector ... URIEncoding="UTF-8">添加到server.xml解决了问题。 使用firefox和crome时,我没有遇到问题,但使用Internet Explorer会出现同样的问题。

我已检查过页面编码是UTF-8。

Internet Explorer与其他人有什么区别?

1 个答案:

答案 0 :(得分:0)

我找到了合适的解决方案。首先,我想提一下我的表格系统。 单击INSERT按钮后,将打开一个弹出窗口,其中还有一个表单。并且这些表单数据通过XMLHttpRequest对象方法发送到ACtion。  如下:..

     var url = '/MY_WEB/Action.do;

   if (typeof XMLHttpRequest != "undefined") {
       req = new XMLHttpRequest();
   } else if (window.ActiveXObject) {


       req = new ActiveXObject("Microsoft.XMLHTTP");
   }

   req.open("GET", url, true);
   req.send(null);

操作方法类型GET导致问题。 当我从GET更改为POST方法调用时,我认为通过UTF编码的流序列化可以正常地进行这些修改。

if (typeof XMLHttpRequest != "undefined") {
        http = new XMLHttpRequest();
    } else if (window.ActiveXObject) {
        http = new ActiveXObject("Microsoft.XMLHTTP");
   }

    http.open("POST", url, true);

     //Send the proper header information along with the request
    http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    http.setRequestHeader("Content-length", params.length);
    http.setRequestHeader("Connection", "close");

    http.send(params);