yanlei3032 发表于 2013-1-29 11:59:05

传500个中文到服务器端乱码问题解决

   传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;    }}  
页: [1]
查看完整版本: 传500个中文到服务器端乱码问题解决