如果您确定不论是您的 JSP 页面还是您的 Servlet 都已经采取了最基本的乱码处理方法之后 , 通过 javascript 传递的中文在接受的时候调试输出的是 ? 的话 , 就试试兄弟我下面这个做法 , 也是跟别人学的 :
你可能采用的 ajax 传递的中文参数正如 :
tempo.open("GET","Query?condition="+encodeURI(encodeURI(query))+"&kind="+kind,true);
或者仅仅是在页面 <head> 标签中嵌入的一小段 script 代码传递的中文参数 :
您可能已经发现他们的一个共同点了 , encodeURI(encodeURI(fontname)), 这就是解决问题的方法了 , 兄弟您可以试试 , 希望对您有所帮助 .
下面是接受部分解码方法 :
String fontwords=request.getParameter( "changefontname" ); // fontwords=java.net.URLDecoder.decode(fontwords, "utf8" ); //post 传递的时候 , 一定是用 utf8 编码的 ,url 自己可以设定
//System.out.println(condition); // 当调用 request.getParameter() 函数时,会自动进行一次 URI 的解码过程,调用时内置的解码过程会导致乱码出现。而 URI 编码两次后, request.getParameter() 函数得到的是原信息 URI 编码一次的内容。再用可控的解码函数 java.net.URLDecoder.decode() 就可解出原始的正确的信息。