JSP开发过程遇到的中文乱码问题及解决方案
对于程序猿来说,乱码问题真的很头疼,下面列举几种常见的乱码。
1.数据库编码不一致导致乱码
解决方法:
首先查看数据库编码,输入:
show variables like "%char%";

确认编码一致,如果不一致,可输入:
SET character_set_client='utf8';
SET character_set_connection='utf8';
SET character_set_results='utf8';
也可设置成gbk编码;
也可以在安装Mysql目录下修改my.ini文件
default-character-set=utf-8
2.jsp页面乱码问题
在myeclipse中jsp的默认编码为ISO-8859-8;
只需在页面头部修改为
<%@page pageEncoding="UTF-8" contentType="text/html; charset=UTF-8" %>
在JSP页面头部加入下面这句话,告诉浏览器应该调用UTF-8的字符集。
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
3.jsp连接数据库存入中文乱码
在数据库连接时
jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8
如果使用框架连接则把头文件都修改成UTF-8编码即可
4.在使用struts2可使用过滤器:
先变写一个过滤器
package com.oumyye.util;
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 CharacterEncodingFilter implements Filter{
protected String encoding = null;
protected FilterConfig filterConfig = null;
public void init(FilterConfig filterConfig) throws ServletException {
this.filterConfig = filterConfig;
this.encoding = filterConfig.getInitParameter("encoding");
}
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
if (encoding != null) {
request.setCharacterEncoding(encoding);
response.setContentType("text/html; charset="+encoding);
}
chain.doFilter(request, response);
}
public void destroy() {
this.encoding = null;
this.filterConfig = null;
}
}
在web.xml中配置
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0">
<display-name>0001web</display-name>
<!-- 中文编码过滤器 -->
<filter>
<filter-name>CharacterEncodingFilter</filter-name>
<filter-class>com.oumyye.util.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>CharacterEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
<dispatcher>REQUEST</dispatcher>
<dispatcher>FORWARD</dispatcher>
</filter-mapping>
在表单中只能使用post传值,此方法对于get无效。
5 处理单个字符串的中文乱码问题
String newname=new String(name.getBytes("iso-8859-1"),"utf-8"))
附:JSP中的编码设置
1. pageEncoding:<%@ page pageEncoding=“UTF-8″%>
设置JSP编译成Servlet时使用的编码
2. contentType: <%@ page contentType=“text/html; charset=UTF-8″%>
对服务器响应进行重新编码,即jsp的输出流在浏览器中显示的编码
3. html页面charset:<META http-equiv=“Content-Type” content=“text/html; charset=UTF-8″>
网页的编码信息 ,说明页面制作所使用的编码
4. request.setCharacterEncoding() — 可用在servlet和jsp页面中
作用是设置对客户端请求进行重新编码的编码,即post方式提交的数据进行编码。
5. response.setCharacterEncoding() — 可用在servlet和jsp页面中
对服务器响应进行重新编码,即jsp的输出流在浏览器中显示的编码,与<%@ page contentType=“text/html;charset=UTF-8″%>一样
6. response.setContentType() — 可用在servlet和jsp页面中
对服务器响应进行重新编码,即jsp的输出流在浏览器中显示的编码,与<%@ page contentType=“text/html;charset=UTF-8″%>一样
7.response.setHeader(“Content-Type”,”text/html;charset=UTF-8″); — 可用在servlet和jsp页面中
与<META http-equiv=“Content-Type” content=“text/html; charset=UTF-8″>一样
JSP开发过程遇到的中文乱码问题及解决方案的更多相关文章
- JSP和Servlet的中文乱码处理
JSP和Servlet的中文乱码处理 前几天学习了JSP和Servlet中有关中文乱码的一些问题,写成了博客,今天进行更新一下.应该是可以解决日常的乱码问题了.现在作以下总结希望对需要的人有所帮助.我 ...
- JSP 中文乱码显示处理解决方案
来源: <http://blog.csdn.net/joyous/article/details/1504274> JSP 中文乱码显示处理解决方案 分类: 所有 Web前端 J2EE20 ...
- Jsp页面中的中文乱码问题解决
Jsp页面中的中文乱码问题解决 在编写Jsp页面的时候,发现写入其中的中文在浏览器浏览的时候会出现乱码的情况. 出现乱码的原因分析: 因为页面中对自己的编码格式的声明和页面的实际编码格式不相同,而浏览 ...
- jsp中文乱码六种情况---解决方案
转 jsp中文乱码六种情况---解决方案 2016年10月22日 21:32:55 阅读数:10672 来源:http://blog.csdn.net/lovesummerforever/articl ...
- RStudio中,出现中文乱码问题的解决方案
RStudio中,出现中文乱码问题的解决方案解决步骤:1.设置RStudio文本显示的默认编码:RStudio菜单栏的Tools -> Global Options2.选择General -&g ...
- VIM、GVIM在WINDOWS下中文乱码的终极解决方案
文章转自:http://www.liuhuadong.com/archives/68 vim.gvim在windows下中文乱码的终极解决方案在windows下vim的中文字体显示并不好,所以我们需要 ...
- Request和Response中文乱码问题的解决方案和区分
首先,在刚接触这个中文乱码问题的时候,还是比较混乱的,因为针对request和response各自都有自己的解决方案,而且思路相似,方法也很相似,又针对get和post两种提交方式,分两种解决中文乱码 ...
- vim、gvim 在 windows 下中文乱码的终极解决方案
vim.gvim 在 windows 下中文乱码的终极解决方案 vim ~/.vimrc 然后加入: " Gvim中文菜单乱码解决方案 " 设置文件编码格式 set encodin ...
- SpringMVC开发过程中的中文乱码问题
相信大家在开发初期遇到中文乱码问题一定是一头雾水,不是数据库乱码了就是页面乱码了或者传值时乱码.其实解决乱码的途径很简单,就是统一编码与解码的类型,我把自己遇到的乱码问题整理出来,希望能够对大家有用. ...
随机推荐
- 【转】vs发布msi程序详解
源地址:http://wenku.baidu.com/link?url=MV1Mf7IukCZ0cab8AzXQoQ3MAXeUAHGz5b2IuUL4Kw-hCI90ZyBKXwKeQA3t3-SV ...
- 洛谷P1024 一元三次方程求解
P1024 一元三次方程求解 题目描述 有形如:ax3+bx2+cx+d=0 这样的一个一元三次方程.给出该方程中各项的系数(a,b,c,d 均为实数),并约定该方程存在三个不同实根(根的范围在-10 ...
- 洛谷P3006 [USACO11JAN]瓶颈Bottleneck(堆模拟)
传送门 感觉这题的思路还是挺不错的.然而为啥全网就一个题解而且只有代码……然后我只好看着代码理解了好久…… 题意就是有一棵树,每一个节点向他父亲节点连边,且有一个容量表示每一秒可以经过的牛的数量,每一 ...
- 用cmd命令来 启动和关闭 SqlServer
cmd命令 启动and关闭 sql数据库服务 (1)先用以管理员身份打开你的cmd窗口. (2)后输入以下对应的命名. 如下: 启动SQLSERVER NET START MSSQLSERVER 暂停 ...
- web安全深度剖析pdf
Web安全深度剖析.pdf_免费高速下载|百度网盘-分享无限制 链接:https://pan.baidu.com/s/1kVwP7SF
- haoi2018奇怪的背包题解
题目传送门:https://www.lydsy.com/JudgeOnline/problem.php?id=5302 对于一个物品,设它体积为v,那么,在背包参数为p的情况下,它能达到gcd(v,p ...
- Migration-添加表
public partial class _111111 : DbMigration { public override void Up() { CreateTable( "dbo.Asse ...
- Gym 100886J Sockets 二分答案 + 贪心
Description standard input/outputStatements Valera has only one electrical socket in his flat. He al ...
- UnityVR Steam_VR开发工具插件---VRTK 自带案例分析
- PHP拾贝
$_SERVER['DOCUMENT_ROOT']指向了web服务器文档树的根.(E:/wamp/www/) ********************************************* ...