当前位置:首页 » 网页前端 » webxml解决乱码
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

webxml解决乱码

发布时间: 2022-10-08 18:58:10

❶ javaweb怎么处理中文乱码问题

中文乱码问题真的是一个很棘手的问题,特别是从前台传到后台之后,都不知道问题出在哪里了。现在分享解决javaWEB中前后台中文乱码问题的3种方法。
方法一:
tomcat的自带编码是ISO-8859-1的格式,是不兼容中文的编码的。所以我们从后台接收的时候要注意。
采用相同的格式去接收(ISO-8859-1),然后用能解析的编码(utf-8)去转换。这样我们就能得到能兼容中文的格式了。这样处理之后发往前台。注意:发往前台的时候也需要设置一下
resp.setContentType("text/html;charset=utf-8");//设置页面的字符编码,解决界面显示中文乱码的问题
protected void service(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
//因为tomcat自带编码是ISO-8859-1格式

//解决乱码方法之一
<span style="white-space:pre"> </span>String name=req.getParameter("username");
<span style="white-space:pre"> </span>String pwd=req.getParameter("pwd");
<span style="white-space:pre"> </span>byte[] b=name.getBytes("ISO-8859-1");//用tomcat的格式(iso-8859-1)方式去读。
<span style="white-space:pre"> </span>String str=new String(b,"utf-8");//采用utf-8去接string
<span style="white-space:pre"> </span>resp.setContentType("text/html;charset=utf-8");//设置页面的字符编码<span style="white-space:pre"> </span>

<span style="white-space:pre"> </span>PrintWriter pw =resp.getWriter();
<span style="white-space:pre"> </span>String str1="<html><body><font size='5px' color='red'>username:"+name+"pwd:"+pwd+"</font></body></html>";
<span style="white-space:pre"> </span>pw.print(str1);
PrintWriter pw =resp.getWriter();
String str1="<html><body><font size='5px' color='red'>username:"+name+"pwd:"+pwd+"</font></body></html>";
pw.print(str1);

方法二:
由于方法一比较繁琐,采用用了简单的设置。只需要简单的一句就可以搞定
req.setCharacterEncoding("utf-8");//必须写在第一位,因为采用这种方式去读取数据,否则数据会出错。
这样就不用像之前的那样繁琐的设置了

protected void service(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
//因为tomcat自带编码是ISO-8859-1格式

//解决乱码二《法一比较繁琐》
req.setCharacterEncoding("utf-8");//必须写在第一位,因为采用这种方式去读取数据,否

则数据会出错。
//设置这样方式去读。这样中文就能够读取出来了,但是需要注意。表单的发送方式必须是<span style="color:#ff0000;"> method='post'</span>
resp.setContentType("text/html;charset=utf-8");//设置传过去的页面显示的编码
String name=req.getParameter("username");
String pwd=req.getParameter("pwd");
PrintWriter pw =resp.getWriter();
String str1="<html><body><font size='5px' color='red'>username:"+name+"pwd:"+pwd+"</font></body></html>";
pw.print(str1);

方法三:
这是在法二的基础上修改的。虽然我们能修改编码格式去读,但是考虑到用户肯定不会修改,所以我们需要采用比较通用的办法,让用户修改配置文件。也就是web.xml文件
需要修改web.xml里面的内容,就是说,字符编码从xml接收过来。需要在xml文件中配置参数。
代码如下:

<servlet>
<servlet-name>Encodeing</servlet-name>
<servlet-class>cn.hncu.com.encode.Encodeing</servlet-class>
<init-param>
<param-name>charset</param-name>
<param-value>utf-8</param-value>//这里面的内容可供用户自己填写(必须是编码格式)
</init-param>
</servlet>

我们知道前台和后台进行交换必须经过web.xml配置
我们需要获取web.xml的设置的参数

public void init(ServletConfig config) throws ServletException {
charset=config.getInitParameter("charset");//获得初始化参数。当然charset需要设置为全局变量。后面的service函数需要设置req.setCharacterEncoding(charset);
}

req.setCharacterEncoding(charset);
resp.setContentType("text/html;charset=utf-8");
String name=req.getParameter("username");
String pwd=req.getParameter("pwd");

PrintWriter pw =resp.getWriter();
String str1="<html><body><font size='5px' color='red'>username:"+name+"pwd:"+pwd+"</font></body></html>";
pw.print(str1);

❷ 关于jsp页面的乱码问题,在web.xml文件中配置了过滤器

首先,你要把你整个项目的编码格式设置成utf-8,还有就是默认的编码格式也要是utf-8,
如果还不行的话,可能是你浏览器的编码格式造成的.修改下试试.祝你好运!

❸ eclipse导入web工程xml文件乱码

选中XML文件,右键,属性,编码那个选中other,然后发现没有GB2312没关系,你选择那个输入框,直接把它默认的删了,自己输入GB2312

❹ 如何解决XML文件乱码

浏览器在打开你的XML文件时要查看你的XML文件中的encoding设置的是什么编码方式,然后就以这个编码方式打开你的XML文件.所以你的XML文件的保存的编码方式一定要与你的XML文件中设置的encoding的编码方式一致,否则就会出现乱码.例如你保存XML文件时使用的是unicode编码,而XML文件中的encoding设置的却是GBK编码,这样浏览器在解析你的XML文件时就会使用GBK的解码方式去解析你原本使用unicode保存的XML文件,这样就乱码了,解析不出来了.所以你的XML文件的保存的编码方式一定要与你的XML文件中设置的encoding的编码方式一致.

❺ java中怎么在web.xml中处理post请求乱码问题

处理的办法太多了,觉得你的出发点错了,你的先判断出出现乱码的原因是啥

出现乱码的地方和原因有很多种,最重要的一种就是字符编码格式不统一导致的,然后你就得看哪里转换的时候不一致,然后再调整。。。

❻ xml文件打开后乱码,怎么解决。

xml文件打开后乱码是内容的编码格式错误,选择以UTF-8格式编码即可。

工具/材料:以Notepad++、xml文件为例。

1、首先在桌面上,选中“xml文件”图标。

❼ web页面查询后中文关键字乱码,如何解决

这可能是由于你的web项目所在系统的字符编码、tomcat的字符编码、开发项目时myeclipse的字符编码以及建立数据库时的编码不一致造成的,点击windows,Preference,点击左侧General,workspace。设置编码为UFT8  别忘了在web.xml中配置这个filter哦

❽ web.xml的配置字符集解决get乱码吗

第一步:在tomcat 的server.xml文件中设置web服务器端口配制中加下面两句: useBodyEncodingForURI="true" URIEncoding="UTF-8" 第二步:JSP页面编码用UTF-8(也可以用“gb2312",第一步与解码要一至)传值时编码一下: 以传递的参数为strPar为例...

❾ eclipse导入web工程xml文件乱码

可能你创建的web项目的版本是3.0及以上的,从这个版本开始web.xml的作用可以通过注解来实现,所以默认就不会生成web.xml,如果你想生成web.xml的话,在创建项目的时候需要一直下一步下一步,并在最后一个页面中把生成web.xml的选项勾选上才会创建

❿ 昆明Java培训:如何解决网页传值过程中文乱码问题

解决中文乱码问题网页传值主要有两种情况:1、使用form表单传值使用form表单传值主要有两种方式:get和post(即:method="get/post",默认是get方式)1)解决使用post方式传递中文的乱码问题:方法一:<formaction="login-handler.jsp"method="post"></form>在接收请求参数之前设置请求编码即可,request.setCharacterEncoding("编码");示例:<%request.setCharacterEncoding("UTF-8");Stringname=request.getParameter("name");Stringpwd=request.getParameter("pwd");%>方法二:可以写一个Filter过滤该项目下的所有请求编码web.xml文件<filter><filter-name>charsetEncoding</filter-name><filter-class>com.lym.filter.CharsetEncodingFilter</filter-class><init-param><param-name>code</param-name><param-value>UTF-8</param-value></init-param></filter><filter-mapping><filter-name>charsetEncoding</filter-name><url-pattern>/*</url-pattern></filter-mapping>CharsetEncodingFilter.java文件{privatestaticStringCODE="UTF-8";//默认编码publicvoiddestroy(){}publicvoiddoFilter(ServletRequestarg0,ServletResponsearg1,FilterChainarg2)throwsIOException,ServletException{HttpServletRequestreq=(HttpServletRequest)arg0;HttpServletResponseresp=(HttpServletResponse)arg1;req.setCharacterEncoding(CODE);resp.setCharacterEncoding(CODE);arg2.doFilter(arg0,arg1);}publicvoidinit(FilterConfigarg0)throwsServletException{Stringcode=arg0.getInitParameter("code");if(!"".equals(code)&&code!=null){CODE=code;}}}2)解决使用get方式传递中文的乱码问题:(两种方法)<formaction="login-handler.jsp"method="get"></form>方法一:对接受到的请求参数进行转码,使用Stringname=newString(name.getBytes("默认编码"),"转换后的编码");<%Stringname=request.getParameter("name");name=newString(name.getBytes("ISO-8859-1"),"UTF-8");//将接收到的name参数的编码转换为UTF-8编码%>方法二:客户端用户提交数据之前,使用JS把用户要提交的中文值进行编码,然后再服务器端对接收到的值进行解码即可。
客户端编码:<script>functionlogin(){varloginForm=document.forms["loginForm"];loginForm.name.value=encodeURI(loginForm.name.value);//对中文字符串进行编码returntrue;}</script><formaction="login-handler.jsp"name="loginForm"method="get"></form>服务端解码:<%Stringname=request.getParameter("name");name=URLDecoder.decode(name,"UTF-8");%>注意:使用encodeURI对字符串进行一次编码,再提交表单时又对字符串进行了一次的编码,实际进行了两次编码。
在使用URLDecoder.decode()进行解码时,实际上是对字符串进行两次解码。
2、使用<ahref=""></a>超链接的方式传值使用JS对a标签的href属性值进行编码,在对a标签的href属性值编码时,要两次编码才能在服务端使用URLDecoder.decode()进行解码。
客户端编码:<script>functiona(){vardoc=document.getElementById("aa");doc.href="a-handler.jsp?info="+encodeURI(encodeURI("你好"));}</script><ahref=""id="aa">使用超链接传送中文参数</a>服务端解码:<%Stringuser=request.getParameter("info");user=URLDecoder.decode(user,"UTF-8");out.println(user);%>