解决Spring框架下中文乱码的问题

在使用了Spring框架下回发现很多表单交互的地方会发生乱码,而且写到数据库中也是乱码,这其实还是字符编码的问题,在我们还在用自己写的servlet的时候,直接在request和response加上字符约束就好了,但是我们在使用spring的时候,这样做就失去了框架的意义。

这时候我们可以使用一个过滤器来将转码。

如果你这样:

1 str = new String(str.getBytes("ISO-8859-1"), "GBK");

转码。 写出来程序通用性不好,而且每次有中文都要这样,用过虑器好。但只对post方式有效。get方式看。

在spring中,不仅有已经写好的普通servlet,同样存在已经写好的过滤器,使用方法和spring的servlet的使用方法是一样的。我们可以直接在配置文件web.xml中配置好,就可以直接使用:这个过滤器的完整名字是:org.springframework.web.filter.CharacterEncodingFilter

部分web.xml中的代码:

 1 <filter>
 2     <filter-name>CharacterEncodingFilter</filter-name>
 3     <filter-class>
 4         org.springframework.web.filter.CharacterEncodingFilter
 5     </filter-class>
 6     <init-param>
 7         <param-name>encoding</param-name>
 8     <param-value>utf-8</param-value>
 9     </init-param>
10 </filter>
11
12 <filter-mapping>
13         <filter-name>CharacterEncodingFilter</filter-name>
14         <url-pattern>/*</url-pattern>
15 </filter-mapping>

通过这个配置我们整个工程项目的字符编码都会成为utf-8的编码。

==========================================================

时间: 2024-10-09 19:50:18

解决Spring框架下中文乱码的问题的相关文章

解决vs2013下创建的python文件,到其他平台(如linux)下中文乱码(或运行时报SyntaxError: (unicode error) &#39;utf-8&#39; codec can&#39;t decode byte...)

Vs2013中创建python文件,在文件中没输入中文时,编码为utf-8的,如图 接着,在里面输入几行中文后,再次用notepad++查看其编码如下,在vs下运行也报错(用cmd运行就不会): 根据以有经验,这是字符编码的问题了,试着将python文件的转化为utf-8的,直接在notepad++上转utf-8 无bom编码格式的,保存,打开vs,会有以下提示 这里不要选择no吧,不然可能会提示以下类似的错误 如果有提示,直接关闭,不然的话,vs又会将此文件保存为ascii格式了 解决vs20

JAVA压缩 解压缩zip 并解决linux下中文乱码

1. [代码][Java]代码   1:再压缩前,要设置linux模式, 需要使用第三方ant-1.6.5.jar  如果是文件目录,则ZipEntry zipEntry=new ZipEntry(basePath + System.getProperties().getProperty("file.separator"));zipEntry.setUnixMode(755);//解决linux乱码 如果是文件,则 ZipEntry zipEntry=new ZipEntry(base

解决Xshell和vim中文乱码(转载)

From:http://blog.csdn.net/lovey599/article/details/7275403 一般而言,乱码多是由于编码问题引起 的,在windows系统中,大多数情况下中文编码采用的是big5或utf-8两种,但是默认情况下确是big5,如果这样的话,请首先用locale命令查看你linux系统当前语系,执行LANG=zh_CN.big5修改语系.这里以utf8编码为例. 打开一个用utf8编码的中文文件,在vim中,执行:set encoding=utf-8 term

vim、gvim在windows下中文乱码的终极解决方案

测试成功,完美解决. 只需修改VIM目录下面的这个文件_vimrc. 加油吧,骚年.很强大的! set encoding=utf-8 set fileencodings=utf-8,chinese,latin-1 if has("win32") set fileencoding=chinese else set fileencoding=utf-8 endif "解决菜单乱码 source $VIMRUNTIME/delmenu.vim source $VIMRUNTIME/

windows下 qt5&amp;vs2010 在qtCreator下中文乱码

环境:windows2012下 qt5.3.1 & vs2010 在qtCreator3.1.2下中文乱码 解决方法:在相关文件中加入代码 #ifdef Q_OS_WIN32 #if _MSC_VER >= 1600 #pragma execution_character_set("utf-8") #endif #endif 或定义一个头文件 包含上面代码,然后在相关文件中引入该头文件.

Spring+MyBatis实践—中文乱码

多种中文乱码问题及解决: jsp页面乱码 表单提交乱码 URL中文参数乱码 1.jsp页面乱码解决(2步): 新建jsp页面: <%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Trans

spring框架下配置lucene

lucene特点及效果文章里就不说了,网上有的是.我就简单说下自己号码大全了解, 正常 sql 查询时:name like '%继中%' 想必咱们一定理解这样不会走索引关键词挖掘的,然后就在多行数据等级查询相应时刻会很慢,对吧,由于数据库在一行行扫呢.所以咱们自然会想到怎样能让它走索引? 解决方案之一:lucene出来了. 本来它即是帮你把文章拆分红若干个关键字,这样以便按关键字查询时能经过关键字直接查询来确定哪些文章匹配该关键字并疾速回来.说再直白点,即是 sql句子的查询不必like ,而是

php -- 解决php连接sqlserver2005中文乱码问题(附详细解决方法)

@[email protected]~~ --php5.2 --phpstudy --apache --sqlserver2005 @[email protected]~~问题描述 问题一:php连接sqlsever2005,输入中文,然后查询sqlserver中对应的数据,由于提交中文是UTF-8,而sqlserver的中文为GBK,所以字段无法匹配,没有查询结果. 问题二,php连接sqlsever2005,读取数据表数据,由于中文是UTF-8,而sqlserver的中文为GBK,读出来的中

ubuntu下中文乱码解决方案(全)

ubuntu下中文乱码解决方案(全) UBUNTU linux中解压zip 中文乱码 (unzip) 有2种方式解决问题: 1. 通过unzip行命令解压,指定字符集 unzip -O CP936 xxx.zip (用GBK, GB18030也可以) 有趣的是unzip的manual中并无这个选项的说明, unzip --help对这个参数有一行简单的说明. 2. 在环境变量中,指定unzip参数,总是以指定的字符集显示和解压文件 /etc/environment中加入2行 UNZIP="-O