inputstream.read() 方法 乱码_InputStreamReader

inputstream.read() 方法 乱码_InputStreamReadernewInputStreamReader(request.getInputStream(),“UTF-8”)引起了乱码,改为newInputStreamReader(newBufferedInputStream(request.getInputStream()))后解决了乱码问题针对这个乱码问题,在网上搜索后有以下3种情况[1]数据库表里面字符集设置错误[2]由于未加编码过滤器导致SpringMVC接收参数时造成的乱码[3]代码中涉及byte数组转换String时出现了问题一、解

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/189292.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 用SqlBulkCopy批量安插数据时提示来自数据源的 String 类型的给定值不能转换为指定目标列的类型 int…

    用SqlBulkCopy批量安插数据时提示来自数据源的 String 类型的给定值不能转换为指定目标列的类型 int…dr[“description”]=ds.Tables[0].Rows[i][“组织描述”].ToString();dr[“groupuser”]=ds.Tables[0].Rows[i][“组织成员”].ToString();dr[“userid”]=AMSession.LoginUser…

    2022年7月20日
    14
  • JS中鼠标拖拽div(2)(setCapture()方法和releaseCapture()方法)

    JS中鼠标拖拽div(2)(setCapture()方法和releaseCapture()方法)接着鼠标拖拽div(1)解决问题,当在拖拽事件所在的页面按下键盘的ctrl+A全选后,再去拖拽div,浏览器会默认去搜索网页中的内容,拖拽功能就会失效,(搜索网页内容是浏览器的默认行为,所以要想不发生这种情况,就得将其取消,是谁执行之后触发了浏览器的默认行为,就在谁里面returnfalse即可取消浏览器的默认行为,但这种方式ie8及以下的版本不支持。)在ie8及以下版本浏览器中,如果调用了元素的setCapture()方法,那么点击任何事物都会来执行这个元素绑定的响应函数。例如:btn.oncl

    2022年5月8日
    48
  • 最新最简单的黑苹果Mac Windows双系统教程(单双系统通用)

    最新最简单的黑苹果Mac Windows双系统教程(单双系统通用)黑苹果MacWindows双系统教程(单双系统通用)在文章最后我会放EFI链接和镜像链接一、 准备工作:一个8G以上的U盘安装etcher(制作黑苹果U盘的工具)下载最新镜像(我这里推荐去黑果小兵的博客去下载)找和自己电脑型号匹配的EFI(或者和你配置差不多的电脑的EFI也可以)进BIOS关闭安全启动(securityboot)二、 开始制作:下载etcher链接插入…

    2022年6月6日
    719
  • 谈谈 Java 中自定义注解及使用场景

    点击上方“全栈程序员社区”,星标公众号 重磅干货,第一时间送达 作者:快给我饭吃 www.jianshu.com/p/a7bedc771204 Java自定义注解一般使用场景为:自…

    2021年6月24日
    78
  • vue3.0计算属性_vue的计算属性和方法有什么区别

    vue3.0计算属性_vue的计算属性和方法有什么区别前言一般情况下属性都是放到data中的,但是有些属性可能是需要经过一些逻辑计算后才能得出来,那么我们可以把这类属性变成计算属性。比如以下:<divid="example&quot

    2022年7月31日
    2
  • Eureka集群环境搭建

    Eureka集群环境搭建前言:Eureka已经停止更新了,在新的项目中,不推荐使用,通过对周阳老师视频的学习,本篇文章主要是简单介绍下Eureka,以及如何搭建集群环境的Eureka,让大家对Eureka有个初步的了解。1.什么是EurekaEureka是Netflix开发的,一个基于REST服务的,服务注册与发现的组件,以实现中间层服务器的负载平衡和故障转移。它主要包括两个组件:EurekaServer和EurekaClientEurekaClient:一个Java

    2022年6月1日
    41

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号