`

项目中常用处理乱码的手段

阅读更多

 

1、jsp页面指定字符集

   这个主要是处理页面显示的乱码问题

 

 

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Insert title here</title>
</head>
<body>

</body>
</html>

 

 

2、修改tomcat配置文件,tomcat根目录/conf/server.xml

 

  修改Connector,添加URIEncoding="UTF-8" 属性,这个主要是处理get请求返回的数据。

 

  

 <Connector URIEncoding="UTF-8" connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443"/>

 

 

3、web应用中添加filter过滤器

 

    编写过滤器

 

     EncodingFilter.java

 

 

import java.io.IOException;

import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;

public class EncodingFilter implements Filter {
	protected String encoding = null;

	protected FilterConfig filterConfig = null;

	public void destroy() {
		this.encoding = null;
		this.filterConfig = null;
	}

	public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
			throws IOException, ServletException {
		String encoding = selectEncoding(request);
		if (encoding != null) {
			request.setCharacterEncoding(encoding);
			response.setCharacterEncoding(encoding);
		}

		chain.doFilter(request, response);
	}

	public void init(FilterConfig filterConfig) throws ServletException {
		this.filterConfig = filterConfig;
		this.encoding = filterConfig.getInitParameter("encoding");
	}

	protected String selectEncoding(ServletRequest request) {
		return this.encoding;
	}
}

 

    web.xml中配置过滤器

 

    

<filter>
    <filter-name>SetChartEncoding</filter-name>
    <filter-class>com.hotels.common.EncodingFilter</filter-class>
    <init-param>
      <param-name>encoding</param-name>
      <param-value>UTF-8</param-value>
    </init-param>
  </filter>
  <filter-mapping>
    <filter-name>SetChartEncoding</filter-name>
    <url-pattern>/*</url-pattern>
  </filter-mapping>

 

4、response中返回header设置content-type=“utf-8”

 

    

// 在一个servlet 中 或者在spring的一个controller中
protected void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		String path = request.getContextPath();/// hotels
		response.setCharacterEncoding("utf-8");
		response.setContentType("text/html;charset=utf-8");

}

 

 

5、如果是spring项目,可以添加spring的字符集过滤器

 

   web.xml

   

<!-- 字符集 -->
	<filter>
		<filter-name>characterEncoding</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>characterEncoding</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>

 

 

    

 

 

 

 

分享到:
评论

相关推荐

    过滤器,Jsp开发中的避免中文乱码

    在JSP开发中,中文乱码问题是一个常见的挑战,尤其是在处理用户输入或者显示中文内容时。过滤器(Filter)在Java Web应用中扮演了重要角色,它可以用来解决这个问题。过滤器是Servlet API的一部分,允许我们在数据...

    Intraweb12 解决汉字乱码问题

    4. 配置应用程序:在Delphi项目中,设置Web服务器组件(如IWApplication)的字符编码属性,确保与服务器和浏览器的设置一致。 5. 测试和调试:发布应用并测试,观察汉字是否正常显示。如果仍然出现乱码,检查HTTP...

    探讨PHP JSON中文乱码的解决方法详解

    这种编码转换方法较为复杂,但它是处理编码不一致时乱码问题的有效手段。 在实际开发中,根据不同的应用场景,这三种方法可以灵活应用。一般来说,如果可以在项目初期就确定编码方式并统一使用UTF-8,则可以最大...

    php生成二维码时出现中文乱码的解决方法

    在进行PHP开发中,生成二维码是一个常见需求,但是当二维码中包含中文字符时,经常会出现乱码的问题,这会严重影响到项目的质量。为了解决这个问题,需要了解二维码的编码机制和PHP生成二维码的具体方法,以及乱码...

    WEB项目测试经验总结

    本文将从零开始,总结Web项目测试的一些关键点和常用方法。 首先,进行页面链接检查,这是最基本的测试步骤。每一条链接都应该指向有效的页面,页面间的跳转应该准确无误。如果一个链接无法打开或者跳转错误,可能...

    JAVA项目必用工具类

    "JAVA项目必用工具类"这个压缩包包含了多个实用的工具类,覆盖了分页、文件上传、验证码生成、处理乱码和跨域问题、DAO操作以及响应处理等常见需求。下面将详细介绍这些工具类及其相关知识点。 1. **...

    php项目

    然而,具体的内容部分似乎是乱码或者非相关的信息,因此我们无法直接从中提取有用的知识点。不过,基于标题和描述,我们可以围绕PHP项目的创建、开发流程以及相关技术进行讨论。 ### PHP项目概述 #### 1. 什么是...

    jsp+servlet实现增删改查

    分页功能是大数据量展示的常用手段,它可以帮助用户逐步加载和浏览大量内容,提高网页加载速度。实现分页通常需要在后端计算每页的记录数和页码,然后传递给前端显示相应的数据。 最后,导出Excel功能提供了数据...

    python抽取指定url页面的title方法

    在实际的网络爬虫项目中,除了提取网页标题,还可能需要提取网页中的其他各种信息,比如图片、链接、文本等,这些都需要相应的技术手段去处理和解析。 通过这篇文章的介绍和代码示例,我们可以了解到用Python实现...

    设计师操作技能考核评分记录表.pdf

    不过,乱码中出现的“cad”可能是指计算机辅助设计(Computer Aided Design,简称CAD),这是设计师在工程设计和建筑领域中的常用软件,用于精确制图和设计模拟。而数字序列和字母组合可能需要在具体的上下文中才能...

    爬取百度百科省市信息脚本

    在描述中提到的“乱码bug”,这通常是指在处理非ASCII字符时出现的问题,如中文字符。Python的编码处理很重要,特别是在处理网页内容时。开发者可能使用了`charset`参数来指定正确的字符编码,或者在读写文件时使用`...

    易语言调用API实现编码转换

    在易语言中,调用API(应用程序接口)是实现某些特定功能,如系统操作、硬件交互等常用手段。API是操作系统提供给开发者用于扩展或控制系统的接口,通常包括函数调用、常量定义、结构体等。 在这个主题中,“易语言...

    CST常用模型设计及参考文献

    在CST中,用户可以导入和导出模型文件,与其他用户共享,或者在不同的项目中复用。 通过学习和实践这些知识点,不仅可以快速入门CST,还能逐步提升在电磁仿真领域的专业能力。对于工程师和研究人员来说,掌握CST...

    自然资源数字化治理能力提升总体方案.pdf

    - 2.2.3 GIS在自然资源管理中的应用案例:分享具体项目中GIS的应用实例。 - 2.2.4 GIS与其他技术的集成:探讨GIS与物联网、云计算等技术的结合方式。 - **2.3 云计算与大数据**:讨论云计算平台如何支持大数据...

    msgProUTF8.rar

    在IT行业中,短信服务是一种广泛应用于验证、通知和营销等场景的重要通信手段。"msgProUTF8.rar"这个压缩包文件似乎包含了一个Java实现的短信服务平台接口调用的示例。接下来,我们将深入探讨Java如何通过HTTP客户端...

    Known Bugs and Limitations of the MS Resource Localization T

    此外,一些用户报告在处理大型项目时,工具可能会出现内存溢出的情况,这限制了其对大规模本地化任务的处理能力。还有,RSLT 3K在处理非ASCII字符时可能出现乱码,这是由于编码兼容性问题导致的。 接下来,我们要提...

    Web开发+java+ssh框架

    - **乱码**问题通常出现在字符集不匹配的情况下,解决方法是确保从客户端接收数据、服务器处理数据以及与数据库交互时使用的字符集一致。 - **分页**是优化大量数据展示的有效手段,通过限制每次加载的数据量,提高...

    工程质量管理各部门责任制.pdf

    由于提供的文件信息中,“【部分内容】”并未给出实际的内容,而是一系列数字、标点符号和乱码,这表明内容识别可能由于OCR技术的限制而不准确。因此,我将无法根据这部分提供的信息生成关于工程质量管理各部门责任...

    j2me国际化问题

    1. **Resource Bundle**:这是Java中处理国际化的主要手段,它是一个包含特定语言版本资源的容器,如字符串、图像等。在J2ME中,我们通常会为每种语言创建一个对应的Resource Bundle,里面包含了该语言下的所有本地...

Global site tag (gtag.js) - Google Analytics