web项目传输数据乱码

java字符乱码

1. 检查三个文件的编码格式是否一致

(1)数据库编码格式

		打开连接工具查看数据库编码格式

数据库编码设置

(2)页面编码格式

html或者jsp页面编码设置

(3) 集成环境的编码格式:这以idea为演示

		打开File-->Settings-->Editor-->File Encodings

idea编码格式设置
假设三个格式不一致,而你又不想改变编码格式,在接受数据时候可以使用一下编码,假设jsp的编码格式是GBK,数据库编码格式是UTF-8:

data = new String(data.getByte("GBK"),"UTF-8");

2.字符过滤器(web.xml)

假若三种文件编码格式相同,在web.xml中加入如下代码:

 <!--字符过滤器-->
  <filter>
    <filter-name>encodingFilter</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>
  </filter>
  <filter-mapping>
    <filter-name>encodingFilter</filter-name>
    <url-pattern>/*</url-pattern>
  </filter-mapping>

3.url传参乱码

打开项目引用的tomcat中,server.xml文件,修改为如下形式:
在这里插入图片描述
前面三个步骤就能解决大部分的乱码问题了,还有一种乱码是因为ajax传输时候数据json化时候出错。

3.传输json数据乱码

(1)在每个RequestMapping如下配置:

在这里插入图片描述

(2)在application-mvc配置文件如下配置,全局编码修改:

如下是配置了类型转化器时候的情况,假如没有配置类型转化器将conversion-service=“conversion-service”
validator=“validator” 删除即可

<mvc:annotation-driven conversion-service="conversion-service"
		validator="validator">
		<mvc:message-converters>
			<bean class="org.springframework.http.converter.StringHttpMessageConverter">
				<property name="supportedMediaTypes">
					<list>
						<value>text/plain;charset=UTF-8</value>
						<value>text/html;charset=UTF-8</value>
					</list>
				</property>
			</bean>
			<bean
				class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
				<property name="supportedMediaTypes">
					<list>
						<value>application/json; charset=UTF-8</value>
						<value>application/x-www-form-urlencoded; charset=UTF-8</value>
					</list>
				</property>
			</bean>
		</mvc:message-converters>
	</mvc:annotation-driven>

在mvc:annotation-driven节点下,配置子节点mvc:message-converters

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值