Ajax中文处理乱码问题总结

来源:百度文库 编辑:神马文学网 时间:2024/04/20 02:07:28
乱码是经常困扰非英语Web程序开发的程序员的问题,可喜的是网上的解决方案也不少,有从客户端想办法的,有从服务端想办法的.本人收集了一些材料,总结出自认为比较容易轻松的方案如下,希望与大家一起探讨.
1.Jsp页面正确显示中文(其实这个不是Ajax的)
页首写入:
<%@ page contentType="text/html; charset=UTF-8"%>
后写入:<br><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><br>这样静态中文就可以显示了.<br>2.Java解析XMLHttpRequest传递过来的中文.<br>如果把中文直接放在URL中通过XMLHttpRequest传到Servlet中,中文会变成"??",其实这时用下列函数转一下码即可:<br>String type =StringUtil.getDecodeParamFromReq("type",request);// 取代了原来的request.getParameter("type");<br>StringUtil类的完整代码如下:<br><img style='max-width:300px;' id="img0" src="http://image2.360doc.cn/DownloadImg/2008/9/28/16915_1686241_1.gif" />package com.sitinspring.nnyy.util;<br><img style='max-width:300px;' id="img1" src="http://image2.360doc.cn/DownloadImg/2008/9/28/16915_1686241_1.gif" /><br><img style='max-width:300px;' id="img2" src="http://image2.360doc.cn/DownloadImg/2008/9/28/16915_1686241_1.gif" />import javax.servlet.http.HttpServletRequest;<br><img style='max-width:300px;' id="img3" src="http://image2.360doc.cn/DownloadImg/2008/9/28/16915_1686241_1.gif" /><br><img style='max-width:300px;' id="img4" src="http://image2.360doc.cn/DownloadImg/2008/9/28/16915_1686241_2.gif" /><img style='max-width:300px;' id="img5" src="http://image2.360doc.cn/DownloadImg/2008/9/28/16915_1686241_3.gif" />public final class StringUtil <img style='max-width:300px;' id="img6" src="http://www.blogjava.net/Images/dot.gif" />{<br><img style='max-width:300px;' id="img7" src="http://image2.360doc.cn/DownloadImg/2008/9/28/16915_1686241_4.gif" /><img style='max-width:300px;' id="img8" src="http://image2.360doc.cn/DownloadImg/2008/9/28/16915_1686241_5.gif" />    private StringUtil() <img style='max-width:300px;' id="img9" src="http://www.blogjava.net/Images/dot.gif" />{<br><img style='max-width:300px;' id="img10" src="http://image2.360doc.cn/DownloadImg/2008/9/28/16915_1686241_6.gif" /><br><img style='max-width:300px;' id="img11" src="http://image2.360doc.cn/DownloadImg/2008/9/28/16915_1686241_7.gif" />    }<br><img style='max-width:300px;' id="img12" src="http://image2.360doc.cn/DownloadImg/2008/9/28/16915_1686241_6.gif" /><br><img style='max-width:300px;' id="img13" src="http://image2.360doc.cn/DownloadImg/2008/9/28/16915_1686241_6.gif" />    public static String getDecodeParamFromReq(String paramName,<br><img style='max-width:300px;' id="img14" src="http://image2.360doc.cn/DownloadImg/2008/9/28/16915_1686241_4.gif" /><img style='max-width:300px;' id="img15" src="http://image2.360doc.cn/DownloadImg/2008/9/28/16915_1686241_5.gif" />            HttpServletRequest request) <img style='max-width:300px;' id="img16" src="http://www.blogjava.net/Images/dot.gif" />{<br><img style='max-width:300px;' id="img17" src="http://image2.360doc.cn/DownloadImg/2008/9/28/16915_1686241_6.gif" />        String retval = request.getParameter(paramName);<br><img style='max-width:300px;' id="img18" src="http://image2.360doc.cn/DownloadImg/2008/9/28/16915_1686241_6.gif" /><br><img style='max-width:300px;' id="img19" src="http://image2.360doc.cn/DownloadImg/2008/9/28/16915_1686241_4.gif" /><img style='max-width:300px;' id="img20" src="http://image2.360doc.cn/DownloadImg/2008/9/28/16915_1686241_5.gif" />        try <img style='max-width:300px;' id="img21" src="http://www.blogjava.net/Images/dot.gif" />{<br><img style='max-width:300px;' id="img22" src="http://image2.360doc.cn/DownloadImg/2008/9/28/16915_1686241_6.gif" />            // 中间用ISO-8859-1过渡<br><img style='max-width:300px;' id="img23" src="http://image2.360doc.cn/DownloadImg/2008/9/28/16915_1686241_6.gif" />            byte[] b = retval.getBytes("8859_1");<br><img style='max-width:300px;' id="img24" src="http://image2.360doc.cn/DownloadImg/2008/9/28/16915_1686241_6.gif" /><br><img style='max-width:300px;' id="img25" src="http://image2.360doc.cn/DownloadImg/2008/9/28/16915_1686241_6.gif" />            // 转换成GB2312字符<br><img style='max-width:300px;' id="img26" src="http://image2.360doc.cn/DownloadImg/2008/9/28/16915_1686241_6.gif" />            retval = new String(b, "GB2312");<br><img style='max-width:300px;' id="img27" src="http://image2.360doc.cn/DownloadImg/2008/9/28/16915_1686241_4.gif" /><img style='max-width:300px;' id="img28" src="http://image2.360doc.cn/DownloadImg/2008/9/28/16915_1686241_5.gif" />        } catch (Exception e) <img style='max-width:300px;' id="img29" src="http://www.blogjava.net/Images/dot.gif" />{<br><img style='max-width:300px;' id="img30" src="http://image2.360doc.cn/DownloadImg/2008/9/28/16915_1686241_6.gif" />            e.printStackTrace();<br><img style='max-width:300px;' id="img31" src="http://image2.360doc.cn/DownloadImg/2008/9/28/16915_1686241_7.gif" />        }<br><img style='max-width:300px;' id="img32" src="http://image2.360doc.cn/DownloadImg/2008/9/28/16915_1686241_6.gif" /><br><img style='max-width:300px;' id="img33" src="http://image2.360doc.cn/DownloadImg/2008/9/28/16915_1686241_6.gif" />        return retval;<br><img style='max-width:300px;' id="img34" src="http://image2.360doc.cn/DownloadImg/2008/9/28/16915_1686241_7.gif" />    }<br><img style='max-width:300px;' id="img35" src="http://image2.360doc.cn/DownloadImg/2008/9/28/16915_1686241_8.gif" />}<br>此后type将得到正确的中文.<br>3.Response如何传出存在中文的xml<br>很简单,在Servlet的doPost函数首部书写一下三句即可<br><img style='max-width:300px;' id="img36" src="http://image2.360doc.cn/DownloadImg/2008/9/28/16915_1686241_1.gif" />response.setContentType("text/xml;charset=UTF-8");<br><img style='max-width:300px;' id="img37" src="http://image2.360doc.cn/DownloadImg/2008/9/28/16915_1686241_1.gif" />response.setHeader("Cache-Control", "no-cache");<br><img style='max-width:300px;' id="img38" src="http://image2.360doc.cn/DownloadImg/2008/9/28/16915_1686241_1.gif" />response.setCharacterEncoding("UTF-8");<br>此后在js解析responseXML时也不需要escape函数的帮忙了.<br>示例页面:<br><img style='max-width:300px;' id="img39" src="http://image2.360doc.cn/DownloadImg/2008/9/28/16915_1686241_9.jpg" /><br>以上</div> <div class="list-group"> <a href="/article/298180" class="list-group-item">Ajax中文处理乱码问题总结</a> <a href="/article/72555" class="list-group-item">Ajax乱码问题整理</a> <a href="/article/102388" class="list-group-item">Ajax中文乱码原因分析及解决方案 [转]</a> <a href="/article/103303" class="list-group-item">Ajax中文乱码原因分析及解决方案 [转]</a> <a href="/article/2390587" class="list-group-item">Ajax中文乱码原因分析及解决方案 [转]</a> <a href="/article/77508" class="list-group-item">关于 Nutch 的一个问题: 中文乱码</a> <a href="/article/311199" class="list-group-item">解决Linux下Java中文乱码问题</a> <a href="/article/1359610" class="list-group-item">C#解决Informix中文乱码问题</a> <a href="/article/251783" class="list-group-item">我的乱码问题处理汇总</a> <a href="/article/2382222" class="list-group-item">java乱码问题网上总结,非常不错</a> <a href="/article/521789" class="list-group-item">jni中字符转换中文乱码的处理方法Lcm</a> <a href="/article/95011" class="list-group-item">Ajax乱码解决方案</a> <a href="/article/141498" class="list-group-item">java中文乱码问题的原因及解决(转载)</a> <a href="/article/165319" class="list-group-item">commons-fileupload 上传时的中文乱码问题</a> <a href="/article/245205" class="list-group-item">Tomcat中文乱码问题的原理和解决方法</a> <a href="/article/311189" class="list-group-item">解决linux下java程序(例如applet)中文乱码问题</a> <a href="/article/609429" class="list-group-item">安装moodle,中文显示乱码问题的完美解决</a> <a href="/article/2170195" class="list-group-item">完美解决windows 7 RC 英文版中文乱码问题</a> <a href="/article/61910" class="list-group-item">【转贴】这是我们公司总结的一些关于中文乱码问题的一些解决方案和经验和大家分享! 摘自中国java开发网</a> <a href="/article/825251" class="list-group-item">我的乱码问题处理汇总 - - Java - JavaEye论坛</a> <a href="/article/961287" class="list-group-item">我的乱码问题处理汇总 - - Java - JavaEye论坛</a> <a href="/article/128945" class="list-group-item">关于中文乱码问题的补充,主要正对URL参数有中文的问题。</a> <a href="/article/182004" class="list-group-item">perl mysql中文乱码</a> <a href="/article/773476" class="list-group-item">MySql中文乱码解决方案</a> </div> </div> </div> </div> </div> </div> <footer id="footer" class="footer hidden-print"> <div class="container"> <div class="panel panel-default"> <div class="panel-heading">相关问题</div> <div class="panel-body"> <a class="btn btn-default" href="/article/1020263" title="5个笑话解读男女本性—巨经典!丝丝入扣,实际!">5个笑话解读男女本性—巨经典!丝丝入扣,实际!</a> <a class="btn btn-default" href="/article/1020264" title="锂电池前景广阔?当升科技独占鳌头--经济频道--人民网">锂电池前景广阔?当升科技独占鳌头--经济频道--人民网</a> <a class="btn btn-default" href="/article/1020265" title="历史的真相,让你了解教科书上不曾记载的历史(转载,来自网易博客)">历史的真相,让你了解教科书上不曾记载的历史(转载,来自网易博客)</a> <a class="btn btn-default" href="/article/1020266" title="动态山水图片2">动态山水图片2</a> <a class="btn btn-default" href="/article/1020267" title="善于用人短变长">善于用人短变长</a> <a class="btn btn-default" href="/article/1020268" title="最高检出台新规明确刑讯逼供八种立案情形">最高检出台新规明确刑讯逼供八种立案情形</a> <a class="btn btn-default" href="/article/1020269" title="很美的句子,句句掉泪【图文】22">很美的句子,句句掉泪【图文】22</a> <a class="btn btn-default" href="/article/1020270" title="保险类股“保险”吗?">保险类股“保险”吗?</a> <a class="btn btn-default" href="/article/1020271" title="【怕鬼写手】双生花,狐殇-女人怕鬼-情感阵营-搜狐社区">【怕鬼写手】双生花,狐殇-女人怕鬼-情感阵营-搜狐社区</a> <a class="btn btn-default" href="/article/1020272" title="透視加華人圈裡被包養的女生 - 文匯資訊">透視加華人圈裡被包養的女生 - 文匯資訊</a> <a class="btn btn-default" href="/article/1020273" title="邓丽君专辑70首连播或随机点播g">邓丽君专辑70首连播或随机点播g</a> <a class="btn btn-default" href="/article/1020274" title="被出卖的大多都是兄弟,被利用的永远都是朋友">被出卖的大多都是兄弟,被利用的永远都是朋友</a> <a class="btn btn-default" href="/article/1020275" title="生活妙招一箩筐 关键时刻帮你忙">生活妙招一箩筐 关键时刻帮你忙</a> <a class="btn btn-default" href="/article/1020276" title="月下新江梦至多当应呼八万银河托谁美景[中华诗词论坛]">月下新江梦至多当应呼八万银河托谁美景[中华诗词论坛]</a> <a class="btn btn-default" href="/article/1020277" title="整脊医学问答(健康者必看)">整脊医学问答(健康者必看)</a> <a class="btn btn-default" href="/article/1020278" title="数码相机全应用/实战调整数码照片/数码相机的保养 zt(图)">数码相机全应用/实战调整数码照片/数码相机的保养 zt(图)</a> <a class="btn btn-default" href="/article/1020279" title="秘方拾零">秘方拾零</a> <a class="btn btn-default" href="/article/1020280" title="不同女人的想法 很逗的 看看吧">不同女人的想法 很逗的 看看吧</a> <a class="btn btn-default" href="/article/1020281" title="花卉壁纸:(8P)">花卉壁纸:(8P)</a> <a class="btn btn-default" href="/article/1020282" title="时间的确切性及行为的精确性-twhsi - 新浪BLOG">时间的确切性及行为的精确性-twhsi - 新浪BLOG</a> <a class="btn btn-default" href="/article/1020283" title="同志们,赶紧收藏了!最强最新2009生活小常识100招">同志们,赶紧收藏了!最强最新2009生活小常识100招</a> <a class="btn btn-default" href="/article/1020284" title="唐代诗词歌赋中的性爱生活">唐代诗词歌赋中的性爱生活</a> <a class="btn btn-default" href="/article/1020285" title="20个幽默笑话">20个幽默笑话</a> <a class="btn btn-default" href="/article/1020286" title="中国经济复苏、节能环保投入带来行业发展良机">中国经济复苏、节能环保投入带来行业发展良机</a> <a class="btn btn-default" href="/article/1020287" title="有什么状况是可以同时作小事的呢?-twhsi - 新浪BLOG">有什么状况是可以同时作小事的呢?-twhsi - 新浪BLOG</a> <a class="btn btn-default" href="/article/1020288" title="春天应是除">春天应是除</a> <a class="btn btn-default" href="/article/1020289" title="读书笔记">读书笔记</a> <a class="btn btn-default" href="/article/1020290" title="北京房价有进一步上涨空间">北京房价有进一步上涨空间</a> <a class="btn btn-default" href="/article/1020291" title="不吃早餐之过">不吃早餐之过</a> <a class="btn btn-default" href="/article/1020292" title="文学百科全书">文学百科全书</a> <a class="btn btn-default" href="/article/1020293" title="各国油画美女">各国油画美女</a> </div> </div></div> <div class="copy-right"> <p>神马文学网,客观、专业、权威的知识性互动百科全书。</p></div> </footer> </body> </html>