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

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 喜欢井宝的七大理由

    喜欢井宝的七大理由

  • 编程路上必定要知道的数据库语言SPL

    编程路上必定要知道的数据库语言SPL要说清这个目标,先要理解数据库是做什么的。数据库这个软件,名字中有个“库”字,会让人觉得它主要是为了存储的。其实不然,数据库实现的重要功能有两条:计算、事务!也就是我们常说的OLAP和OLTP,数据库的存储都是为这两件事服务的,单纯的存储并不是数据库的目标。我们知道,SQL是目前数据库的主流语言。那么,用SQL做这两件事是不是很方便呢?事务类功能主要解决数据在写入和读出时要保持的一致性,实现这件事的难度并不小,但对于应用程序的接口却非常简单,用于操纵数据库读写的代码也很简单。如果假定目前关系数据库的逻辑存储

  • 图片压缩最优方案

    图片压缩最优方案

  • python一行实现局域网内传输文件[通俗易懂]

    python一行实现局域网内传输文件[通俗易懂]python一行实现局域网内传输文件熟悉python的大家伙,对于这个应该不陌生,这个功能我一直都在使用,今天想记录一下其实时想抛砖引玉。缘由记得那是刚开始学习python,对任何精简而强大的功能都感到好奇。从任何平台,只要看到关于python的文章,就会点进去进行深度阅读。久而久之,的确学习到了一些小技巧,或言之投机取巧吧。比如,这个用python来实现局域网内文件传输,就是在用了坚果pr…

  • 真理的基本的属性是_thread和handler区别

    真理的基本的属性是_thread和handler区别原文地址:http://blog.csdn.net/luckeryin/article/details/5649144C#中,Thread类有一个IsBackground的属性.MSDN上对它的解释是:获取或设置一个值,该值指示某个线程是否为后台线程。个人感觉这样的解释等于没有解释..Net中的线程,可以分为后台线程和前台线程。后台线程与前台线程并没有本质的区别,它们之间唯一

    2022年10月16日

发表回复

您的电子邮箱地址不会被公开。

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