JavaWeb解决乱码全攻略
"JavaWeb乱码问题解决方案" 在开发JavaWeb应用时,乱码问题是一个常见的困扰。这里提供一个详尽的解决方案,帮助你解决JavaWeb中的字符编码问题。 首先,我们需要了解JavaWeb乱码主要发生在两个阶段:请求传递和响应输出。下面是一些关键的步骤来解决这些问题: 1. 配置服务器: 对于Apache Tomcat服务器,你需要修改`conf/server.xml`文件中的`Connector`元素,添加`URIEncoding`属性来指定请求编码。例如: ```xml <Connector port="8080" maxThreads="150" minSpareThreads="25" maxSpareThreads="75" enableLookups="false" redirectPort="8443" acceptCount="100" debug="0" connectionTimeout="20000" disableUploadTimeout="true" URIEncoding="GBK"/> ``` 这里将`URIEncoding`设置为`GBK`,确保服务器正确解析带有中文的URL。 2. HTML页面设置: 在HTML文件的`<head>`部分,应包含`<meta>`标签来声明页面的字符集。例如: ```html <meta http-equiv="Content-Type" content="text/html;charset=GBK"> ``` 这样浏览器会按照GBK编码解析页面内容。 3. Java代码处理: 当接收HTTP请求时,需要调用`HttpServletRequest`的`setCharacterEncoding()`方法来设置请求参数的编码,如: ```java request.setCharacterEncoding("GBK"); ``` 对于响应,可以通过`HttpServletResponse`的`setContentType()`方法指定响应内容的类型和字符集,如: ```java response.setContentType("text/html;charset=GBK"); ``` 获取响应输出流时,确保使用与字符集匹配的`PrintWriter`: ```java PrintWriter out = response.getWriter(); ``` 4. URL编码与解码: 当使用GET方式传递参数时,URL中的中文字符会被自动编码为 `%xx` 形式。在发送响应重定向时,确保使用`URLEncoder.encode()`进行编码,例如: ```java response.sendRedirect("b.jsp?name=" + URLEncoder.encode("姓名", "GBK")); ``` 接收端使用`request.getParameter()`获取参数时,已编码的字符串会被自动解码。 5. JSP页面处理: 在JSP页面中,可以通过`contentType`属性设置页面编码,如: ```jsp <%@ page language="java" import="java.net.*" contentType="text/html;charset=GBK" %> ``` 并且在需要的地方使用`URLEncoder.encode()`对URL参数进行编码。 通过以上步骤,你可以有效地防止和解决JavaWeb中的乱码问题。但请注意,不同的项目可能需要适应不同的字符集,所以请根据实际需求调整编码设置。同时,确保在整个应用程序中保持一致的字符集策略,以免出现编码不匹配的问题。
直接在服务器里设置编码转换
在..\Tomcat 5.0\conf目录里找到SERVER.XML文件,用写字板打开它,设置如下:
<Connector port="8080" maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="8443" acceptCount="100" debug="0"connectionTimeout="20000" disableUploadTimeout="true" URIEncoding="GBK"/>
里面增加一个属性就可以了,URIEncoding="GBK"
2.
在html文本的head里加meta标记
<meta http-equiv="Content-Type" content="text/html; charset=GBK">
3。
request.setCharacterEncoding("GBK");
response.setContentType(CONTENT_TYPE);
PrintWriter out=response.getWriter();
顺序不要反了
4。==针对提交过来是中文,显示为乱码的情况
out.println(new String("想要输出的汉字".getBytes("iso8859-1"),"GBK");
5。针对超连接提交中文参数的解决办法
有些情况下GET方式提交带参数的中文不是乱码,
有些情况下是乱码,这和具体的机器环境有关
如果有乱码,可是使用以下方式
例: <%@ page language="java" import="java.net.*" contentType="text/html; charset=gbk"%>
<% //提交中文的参数时用URLEncoder.encode把中文转换下
response.sendRedirect("b.jsp?name="+URLEncoder.encode("您好"));
%>
在b.jsp中直接得到就可以了
out.println(request.getParameter("name"));
下载后可阅读完整内容,剩余1页未读,立即下载
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![md](https://img-home.csdnimg.cn/images/20210720083646.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://profile-avatar.csdnimg.cn/default.jpg!1)
- 粉丝: 0
- 资源: 1
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助
![](https://csdnimg.cn/release/wenkucmsfe/public/img/voice.245cc511.png)
最新资源
- C++标准程序库:权威指南
- Java解惑:奇数判断误区与改进方法
- C++编程必读:20种设计模式详解与实战
- LM3S8962微控制器数据手册
- 51单片机C语言实战教程:从入门到精通
- Spring3.0权威指南:JavaEE6实战
- Win32多线程程序设计详解
- Lucene2.9.1开发全攻略:从环境配置到索引创建
- 内存虚拟硬盘技术:提升电脑速度的秘密武器
- Java操作数据库:保存与显示图片到数据库及页面
- ISO14001:2004环境管理体系要求详解
- ShopExV4.8二次开发详解
- 企业形象与产品推广一站式网站建设技术方案揭秘
- Shopex二次开发:触发器与控制器重定向技术详解
- FPGA开发实战指南:创新设计与进阶技巧
- ShopExV4.8二次开发入门:解决升级问题与功能扩展
![](https://img-home.csdnimg.cn/images/20220527035711.png)
![](https://img-home.csdnimg.cn/images/20220527035111.png)
![](https://csdnimg.cn/release/wenkucmsfe/public/img/green-success.6a4acb44.png)