大家好,又见面了,我是你们的朋友全栈君。
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中加入即可。如下:
代码语言:javascript复制<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
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。