?? 传500个中文到服务器端乱码问题解决,挺有意思的东西,ajax传送默认是utf-8所以js就不设置编码了,注意点需要对&,+等一些特殊符号进行转码,可以用类似replace的方法进行转换。不过写replace进行转换可能有一点点疑惑,具体可以参考java的replace方法,呵呵。
function createXMLHttpRequest() { var xmlHttp; if (window.ActiveXObject) { xmlHttp = new ActiveXObject("Microsoft.XMLHTTP"); } else if (window.XMLHttpRequest) { xmlHttp = new XMLHttpRequest(); } return xmlHttp; } function startRequest(url,parameters,callback) { var xmlHttp = createXMLHttpRequest(); try { xmlHttp.onreadystatechange = function() { if (xmlHttp.readyState == 4) { if (xmlHttp.status == 200 || xmlHttp.status == 0) { text = xmlHttp.responseText; callback(text); } } }; xmlHttp.open("POST",url, true); xmlHttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); xmlHttp.send(parameters); } catch (exception) { alert("xmlHttp Fail"); } } function replace(parameter) { var str = parameter.replace(/\&/g, 'and').replace(/\%/g, 'mod').replace( /\+/g, 'add'); return str } function getValue(){ var value="我"; for(var i=0;i<501;i++){ value=value+'我'; } return value } function test() { var url="AJAXDo.action"; paremeters="type="+replace(getValue()); startRequest(url,paremeters,callback); } function callback(text){ alert(text); }? ?
public class AjaxService extends BaseService { private static final long serialVersionUID = 1L; public String test() throws Exception { String type = request.getParameter("type"); response.setContentType("text/html charset=UTF-8"); response.setCharacterEncoding("UTF-8"); if (type == null) { response.getWriter().println("添加失败"); } else { System.out.println(type); response.getWriter().println("添加成功"); } return null; } }?
?