我正在用两种语言(英语和法语)制作表格。当有人输入其名称时,表单使用ajax从我们的数据库中查询信息。可悲的是,当我使用response.getWriter()。write(“Heyéè”);功能它似乎不支持'é''è'等字符。
这是我的javascript和ajax:
function fillBlanks(idOfInputText,valueOfInputText)
{
//Prepare a new ajaxRequest.
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp = new XMLHttpRequest();
} else {// code for IE6, IE5
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
//Ajax receiving the response in this function
xmlhttp.onreadystatechange = function()
{
//state 4 is response ready.
//Status 200 is page found.
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
//Change the content of the select to ajax result.
var content = [];
content = decode(xmlhttp.responseText);
document.getElementById('lastName').innerHTML = content[0];
document.getElementById('firstName').innerHTML = content[1];
document.getElementById('defaultPrinter').innerHTML = content[2];
document.getElementById('dropDownRespExistant').innerHTML = content[3];
}
};
//Send the Ajax request.
xmlhttp.open('GET','mainServlet?command=ajax.FillBlanksHtml&ID='+ idOfInputText + '&VALUE=' + valueOfInputText, true);
xmlhttp.send();
}
这是我的java类:
public class FillBlanksHtmlCommand extends FrontCommand
{
public static String userName;
public static String lastName;
public static String firstName;
@Override
public void processRequest(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException
{
String value = new String(request.getParameter("VALUE"));//get the ajax value
response.getWriter().write(OracleUserFinder.findHtmlCodeForOracleUser(value));
}
}
我想知道是否可以通过其他方式发送特殊字符。如果你能告诉我这个函数使用什么编码,那就太好了!!
答案 0 :(得分:2)
根据问题Detecting the character encoding of an HTTP POST request,您应该将请求的字符编码从ISO-8859-1更改为UTF-8,以使您的请求有效。
最简单的方法是(从问题的答案):
<form accept-charset="UTF-8">
虽然您可以使用那里提出的任何其他解决方案。
对于响应,您只需将字符集添加到UTF-8,如下所示:Setting the HTTP charset parameter
在Servlet(或Controller类)中,只需添加以下代码:
response.setContentType("text/xml; charset=UTF-8");
答案 1 :(得分:1)
如何使用jQuery
contentType: "application/x-www-form-urlencoded; charset=UTF-8"
看一下这个链接 http://www.gunith.com/2010/11/how-to-send-german-umlauts-through-jquery-ajax/