为什么IE无法正确显示我的HttpHandler Web应用程序中的特殊符号?

时间:2016-02-09 20:36:00

标签: javascript java jquery httpserver

我有一个使用Java HttpServer,jQuery / html的网络应用程序,它处理特殊符号,如:♤♠♧

该应用在Firefox和Chrome中运行良好,但是当我使用IE时,它会将符号显示为:? ? ?

我的jQuery代码如下所示:

$(document).on('click','#Save',function()
{
  var buttonData='';
  $('button[id^=\"Current_\"]').each(function() { buttonData+=$(this).text()+' ' });
  $.get('My_App?New_Data='+buttonData,function(responseText)
  {
    $('#Save_div').html(responseText);
  });
});

我的HttpHandler看起来像这样:

      public void handle(HttpExchange exchange)
      {
        OutputStream responseBody=exchange.getResponseBody();
        String requestMethod=exchange.getRequestMethod(),requestPath=exchange.getRequestURI().getPath(),New_Data;
        LinkedHashMap<String,String> params=queryToMap(exchange.getRequestURI().getRawQuery());

        try
        {
          New_Data=(params.get("New_Data")==null?null:URLDecoder.decode(params.get("New_Data"),"utf-8"));
          Headers responseHeaders=exchange.getResponseHeaders();
          responseHeaders.set("Content-Type","text/html;charset=utf-8");
          exchange.sendResponseHeaders(200,0);
          responseText=New_Data;
          responseBody.write(responseText.getBytes());
        }
...

如何让IE显示与其他两种浏览器类似的特殊符号?

编辑:我的IE版本是:11.0.96

1 个答案:

答案 0 :(得分:0)

经过一番研究后我找到了答案。

使用encodeURIComponent()对带有特殊符号的文本进行编码,然后将其发送到服务器,它按预期工作。