为什么 IE 无法正确显示来自我的 HttpHandler 网络应用程序的特殊符号?
Why IE can't display special symbols from my HttpHandler web app properly?
我有一个网络应用程序使用 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 像其他 2 个浏览器一样显示特殊符号?
编辑:我的 IE 版本是:11.0.96
经过一番研究,我找到了答案。
使用 encodeURIComponent() 对带有特殊符号的文本进行编码,然后将其发送到服务器,它按预期工作。
我有一个网络应用程序使用 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 像其他 2 个浏览器一样显示特殊符号?
编辑:我的 IE 版本是:11.0.96
经过一番研究,我找到了答案。
使用 encodeURIComponent() 对带有特殊符号的文本进行编码,然后将其发送到服务器,它按预期工作。