中易网

jsp中处理中文乱码的解决方案有哪些

答案:1  悬赏:80  
解决时间 2021-01-28 18:07
jsp中处理中文乱码的解决方案有哪些
最佳答案
JSP 中文乱码处理解决方案

初学JSP,尤其是Tomcat环境(GlassFish默认UTF-8,则不存在此类问题),经常会因为中文汉字字符集设置问题导致中文乱码,本文就这一问题提出解决方案,解决中文乱码问题,供各位参考,我采用的方案是统一字符集至UTF-8,同时避免GB2312所带来的中文字符集不够用的隐患,需注意的地方有三点,默认情况下是英文字符集。
1、Tomcat 的 server.xml 文件,设置服务器端口工作方式
2、Servlet 和 JavaBean 对字符串字符集处理的统一
3、JSP页面的字符集统一
完成这三点统一,中文想乱码都难,如果使用MySQL的话,数据表也需要做UTF-8统一。

修改Tomcat的server.xml文件,该文件位于 tomcat/conf,红色部分为添加部分,也就是当前使用的HTTP端口的连接方式的设置。
找到Connector 标签,使 Tomcat 服务器以UTF-8模式进行工作,从底层对乱码进行处理,修改如下:
connectionTimeout="20000"
redirectPort="8443" />
其它应用服务器例如GlassFish默认支持utf-8,服务器本身无需设置,只须代码上注意即可。

运行代码内设置如下:
JavaBean 和 Servlet 内需要处理中文的地方之前,或者所有函数最前端加上
request.setCharacterEncoding ("UTF-8");
response.setCharacterEncoding ("UTF-8");
避免在 JavaBean 和 Servlet 内出现汉字乱码。

JSP代码中的 JAVA 字符编码设置,在页面上对乱码进行处理。

<%@page contentType="text/html"%>
<%@page pageEncoding="UTF-8"%>

红色为制定JSP处理字符采用UTF-8编码处理方式。

<%request.setCharacterEncoding ("UTF-8");%>
JSP内JAVA代码设定接收参数为UTF-8编码

JSP 内 HTML 头的编码设置,页面处理以UTF-8,避免显示乱码。



Note Page


……
……
红色部分UTF-8制定HTML页面使用的编码方式



接收代码如下:

<%
// 通过二进制传递的参数,因为UTF-8的设置,无须转换,直接中文操作,而不会出现乱码。
String temp1 = request.getParameter ("yourname");
……
%>

采用get方式略有不同,若只采用以上设定,遇中文参数,因编码不同,会导致部分文字信息丢失,所以在提交前务必进行编码,这里用到两个函数java.net.URLDecoder.decode 和java.net.URLDecoder.encode,分别是编码和解码。

<%=request.getContextPath()%>/index.jsp?传递的参数名=
<%=java.net.URLEncoder.encode (传递的汉字变量,"UTF-8")%>">
<%=超链接热点显示内容%>


作为参数传递的中文,由 java.net.URLEncoder.encode函数将要发送的变量解析为16进制数字编码,进行URL传递,接收代码如下:

<%String str = request.getParameter ("传递的参数名");%>

由此,获得参数后的 str 内将是正确的中文信息,完全避免了乱码的显示。

可用 java.net.URLDecoder.decode 函数
例如
<%
String str1 = java.net.URLDecoder.decode(request.getParameter("传递的参数名"),"UTF-8");
%>
完毕将完美解决中文字符参数乱码问题。
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
销售串单是什么意思
有没有那种歌?就是调子很平,起伏不大,很容
英雄联盟的几个最难回答的问题
华晨中华汽车的发展史
与路人差别过大的明星有哪些?
学的专业是网络运营专业,毕业可以去做什么?
unity3d 5.5怎么计数
落日楼头,段鸿声里,江南游子。把吴钩看了,阑
红楼梦中李纨的丈夫是谁?
长江三峡工程时间
带有liao的成语
( )睡在松软的泥土里。
Sometimes, people can stay angry for years
白云亭景致优美,但是,这里的县官空缺,动不动
原本以为读完高中,就像初中得毕业证了,会不
推荐资讯
微信小程序 编译wxml 错误怎么弄
科鲁兹2013款1.8L的排量加几号汽油好
发蜡跟发胶那个好啊
在美日货币对中,小数点后只有2位数,那汇率变
ELONA 单机游戏 : 我身上要带点什么东西比较
求知名度高的美甲店
无针钉书机是什么原理?有用吗?
VHDL 我用了别人的程序 想加一个模块到里边
农安实验中学啥时取通知书啊。。,,,
四爷与八爷 若你是马尔泰若溪 你会选择谁
橄榄核三棱素籽用手来回撸好吗
π=多少,越多数字越好
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?