`

传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;
    }
}
 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics