大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。
Jetbrains全系列IDE稳定放心使用
new InputStreamReader(request.getInputStream())引起了乱码,改为
new InputStreamReader(
request.getInputStream(),“UTF-8”)后解决了乱码问题
针对这个乱码问题,在网上搜索后有以下3种情况
[1] 数据库表里面字符集设置错误
[2] 由于未加编码过滤器导致SpringMVC接收参数时造成的乱码
[3] 代码中涉及byte数组转换String时出现了问题
一、解决数据库表里面字符集设置错误
1、打开navicat工具并连接上自己的数据库找到要修改默认字符集的表格。
2、右击表格在菜单中找到“表讯息”。
3、打开表讯息,可以在常规界面中看到“整理”的值为latin1,这个就是表格的字符集。下面我们要把它改成我们需要的utf8
4、输入sql语句ALTER TABLE 表名 DEFAULT CHARACTER SET utf8;
把表名改成自己表格的名字。
5、再返回查看表格“表讯息”发现表格的字符集已经改成了utf8
二、由于未加编码过滤器导致SpringMVC接收参数时造成的乱码
1.先保证所有的页面编码都是utf-8,包括jsp页面,浏览器编码设置和eclipse的编码设置。
2.spingmvc给我们提供了一个编码过滤器,只需要在配置文件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>
</filter>
<filter-mapping>
<filter-name>characterEncoding</filter-name>
<url-pattern>/*</url-pattern> </filter-mapping>
三、代码中涉及byte数组转换String时出现了问题。
1)BufferedReader:从字符流中读取文本
从字符输入流中读取文本,缓冲各个字符,从而实现字符、数组和行的高效读取。 可以指定缓冲区的大小,或者可使用默认的大小。大多数情况下,默认值足够大
2)InputStreamReader:将字节流转换为字符流。有多个重载方法,
其中一个是:
public InputStreamReader(InputStream in):该解码过程将使用file.encoding默认的字符编码,如果没有设置,则使用ISO 8859_1
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/189292.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...