解决url中文乱码.doc
解决java中url传参时出现的中文乱码,在传参页面用URLEncoder.encode("","UTF-8") 在显示页面jsp页面开头加, request.setCharacterEncoding("UTF-8") 在Java Web开发中,URL中文乱码问题是一个常见的困扰,主要出现在传递含有中文字符的参数时。本案例中,我们将探讨如何解决这个问题,涉及到的主要知识点包括URL编码、字符集转换以及在Java Servlet、JSP和Struts2框架中的应用。 1. **URL编码**:URL(Uniform Resource Locator)是统一资源定位符,它不支持非ASCII字符。当URL中包含中文字符时,需要将这些字符转换为ASCII编码,这个过程称为URL编码。在Java中,`java.net.URLEncoder.encode()`方法用于将字符串按照指定的字符编码进行URL编码。 2. **字符集编码**:在Web应用中,字符集编码是决定字符如何被存储和解析的关键因素。常见的字符集有GBK、ISO-8859-1和UTF-8等。在JSP页面中,`pageEncoding`属性定义了JSP页面的字符集,例如`<%@ page pageEncoding="UTF-8"%>`,这将确保JSP页面内部的文本按照UTF-8编码。 3. **解决URL乱码**:在`Index.jsp`中,两个按钮点击事件分别调用了`doSubmit()`和`doAction()`函数,这两个函数使用`URLEncoder.encode()`对中文字符串进行编码,确保在URL中传输时不出现乱码。例如: ```java <%=URLEncoder.encode("因为js url在传值的过程中使用的是js自己默认的字符集编码规则,我们必须把它转成属于我们自己的编码规格","UTF-8")%> ``` 这里使用UTF-8作为编码格式。 4. **接收参数**:在接收URL参数的页面,例如`Succ.jsp`,需要设置请求的字符编码,确保能够正确解析带有中文的URL参数。在JSP页面的顶部添加: ```java <% request.setCharacterEncoding("UTF-8"); %> ``` 这行代码确保了请求的字符编码为UTF-8,防止乱码。 5. **Struts2框架处理**:在Struts2中,`ZhongweiAction`类的`execute()`方法默认并不会自动处理请求的编码,因此需要在Action类中手动处理。但在这个例子中,Struts2并没有直接在Action中处理编码,而是通过配置文件和结果页面来处理。在`struts.xml`中,`<action>`标签并没有配置与字符编码相关的属性。 6. **过滤器配置**:在`web.xml`中,配置了Struts2的`FilterDispatcher`过滤器。尽管这里没有显示与字符编码相关的配置,但在Struts2版本2.1以上,`FilterDispatcher`已由`struts2-core`库中的`StrutsPrepareAndExecuteFilter`替代,它可以处理请求的编码。不过,为了确保兼容性和控制更精确,通常建议在过滤器链中加入一个自定义过滤器来设定字符编码,例如: ```xml <filter> <filter-name>characterEncodingFilter</filter-name> <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> <init-param> <param-name>encoding</param-name> <param-value>UTF-8</param-value> </init-param> <init-param> <param-name>forceEncoding</param-name> <param-value>true</param-value> </init-param> </filter> <filter-mapping> <filter-name>characterEncodingFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> ``` 这样的配置可以确保整个应用程序的请求都使用UTF-8编码。 总结,解决Java Web中的URL中文乱码问题,关键在于发送请求时使用`URLEncoder.encode()`进行编码,以及在接收请求时设置正确的字符编码,如在JSP页面和Struts2 Action中。同时,可以通过配置过滤器确保整个应用程序的统一编码策略。了解并熟练掌握这些知识,能有效避免乱码问题,提高Web应用的用户体验。
- sunnyshining882011-10-20挺好,但是我的问题是从<display:table>列排序来的,无法指定参数的编码。
- 粉丝: 0
- 资源: 4
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 一个基于JAVA的类魔塔小游戏 a Java based MagicTowerlike game.zip网络安全
- 基于 SpringBoot 开发的员工的季度绩效考核系统.zip
- 微信自动抢红包动态库.zip程序资源学习资料参考
- 新年快乐的烟花代码.zip
- kotlin 实践微信插件助手, 目前支持抢红包(支持微信最新版本 7.0.0及7.0.3).zip
- 多模态大模型在视觉领域的全面调查
- iOS微信自动抢红包和防撤回插件.zip小程序
- 富士打印机(DocuCentre S2110)打印、扫描驱动下载
- 升腾威讯C73N笔记本无线网卡Win10驱动(稳定支持WiFi6)
- Java Web实验报告三:基于Jquery的表单验证插件