根据上篇记录Java web中常见编码乱码问题(一), 接着记录乱码案例:

  案例分析:  

  2、输出流写入内容或者输入流读取内容时乱码(内容中有中文)

  原因分析:

    a、 如果是按字节写入或读取时乱码,应该先检测系统编码是什么样的,看看是否支持中文编码的字符集。  

    System.out.println(System.getProperty("file.encoding"));

    a1、如果是不支持中文的就要设置jvm编码了,设置方法:

    Windows环境就在catalina.bat配置:

   set JAVA_OPTS=%JAVA_OPTS% -Dfile.encoding=UTF-8

    Linux环境就在catalina.sh配置:

   JAVA_OPTS="$JAVA_OPTS -Dfile.encoding=utf-8"

    设置好之后,应该就没什么大问题了。(注意:读取内容要转成字符串的形式,要指定字符集,如下图:

    a2、如果是支持中文编码的字符集,还出现乱码的话,首先要考虑a1中的注意事项,其次改换字符集为UTF-8,全面支持中文,

    不会有漏洞。

    

    b、如果是按字符写入或读取时乱码,那么写入和读取应指定同一字符集编码(推荐是UTF-8)。example:

    //通过字符流来写入字符
String charset = "UTF-8";
FileOutputStream fout = new FileOutputStream("F:/test.txt");
OutputStreamWriter writer = new OutputStreamWriter(fout, charset);//指定字符集编码
writer.write("这就是本该拼搏的年纪,却想得太多,做得太少! "); //读取字节转换成字符
FileInputStream fis = new FileInputStream("F:/test.txt");
InputStreamReader reader = new InputStreamReader(fis, charset);//指定字符集编码
StringBuffer content = new StringBuffer();
char[] buf = new char[64];
int len = -1;
while ((len = reader.read(buf)) != -1) {
content.append(buf, 0, len);
}
System.out.println(content.toString());

    如果没有指定就会获取系统编码,就有可能乱码,解决方法可以参照a。

    3、数据库乱码

      这种情况就很简单了,可以查看这篇博文MySQL 插入数据时,中文乱码问题的解决

    

    从上面可知,乱码问题并不难解决,搞清楚源头就好。其中要注意两个点,再次提醒:

    1、最好指定好系统默认编码,否则没有设置编码的时候会获取当前系统的编码。(当你在windows中不会乱码,但是移植到linux中就可能会出现乱码)

    2、设置好tomcat中uriencoding属性,配置全局编码过滤器会解决大部分请求数据乱码的问题。

Java web中常见编码乱码问题(二)的更多相关文章

  1. Java web中常见编码乱码问题(一)

    最近在看Java web中中文编码问题,特此记录下. 本文将会介绍常见编码方式和Java web中遇到中文乱码问题的常见解决方法: 一.常见编码方式: 1.ASCII 码 众所周知,这是最简单的编码. ...

  2. JAVA WEB 中的编码分析

    JAVA WEB 中的编码分析 */--> pre.src {background-color: #292b2e; color: #b2b2b2;} pre.src {background-co ...

  3. 深入分析Java Web中的编码问题

    编码问题一直困扰着我,每次遇到乱码或者编码问题,网上一查,问题解决了,但是实际的原理并没有搞懂,每次遇到,都是什么头疼. 决定彻彻底底的一次性解决编码问题. 1.为什么要编码 计算机的基本单元是字节, ...

  4. Java Web中的编码解析

    在springmvc工程web.xml中配置中文编码 <!-- 配置请求过滤器,编码格式设为UTF-8,避免中文乱码--> <filter> <filter-name&g ...

  5. 【中文乱码】深入分析 Java Web 中的中文编码问题

    深入分析 Java Web 中的中文编码问题 1.几种常见的编码格式 1.1 为什么要编码 在计算机中存储信息的最小单元是 1 个字节,即 8 个 bit, 所以能表示的字符范围是 0 ~ 255 个 ...

  6. Java Web中解决乱码的方式

    Java Web中解决乱码的方式 方式一:添加编码过滤器 package com.itmacy.dev.filter; import javax.servlet.*; import javax.ser ...

  7. 解决java web中safari浏览器下载后文件中文乱码问题

    解决java web中safari浏览器下载后文件中文乱码问题 String fileName = "测试文件.doc"; String userAgent = request.g ...

  8. 深入分析Java Web中的中文编码问题

    要对Java Web项目进行编码原因: 1.在计算机中存储信息的最小单位是1个字节,即8个bit,所以能表示的字符范围是0~255个. 2.电脑需要表示的符号太多.无法用1个字节完全表示. 要解决这个 ...

  9. 【JAVA编码专题】 JAVA字符编码系列三:Java应用中的编码问题

    这两天抽时间又总结/整理了一下各种编码的实际编码方式,和在Java应用中的使用情况,在这里记录下来以便日后参考. 为了构成一个完整的对文字编码的认识和深入把握,以便处理在Java开发过程中遇到的各种问 ...

随机推荐

  1. rsync远程同步

    一.概念 Rsync是一个开源的快速备份工具,可以在不同主机之间镜像同步整个目录树,支持增量备份,保持连接和权限,且采用优化的同步算法,传输前执行压缩,因此非常适用于异地备份,镜像服务器等应用.rsy ...

  2. 32位机器的LowMemory

        今天在和供应商交流的过程中,被严重鄙视了,竟然认为我连"LowMemory"都没有听说过.感觉很郁闷,好歹我也搞过一段时间memory Management,怎么可能连Lo ...

  3. 权限管理系统 mysql 数据脚本

    # SQL-Front 5.1 (Build 4.16) /*!40101 SET @OLD_SQL_MODE=@@SQL_MODE */; /*!40101 SET SQL_MODE='STRICT ...

  4. java 无法连接ftp服务器(500 OOPS: cannot change directory)

    在使用java连接ftp服务器时可能会出现无法连接的情况,检查代码是没有错误的,这时就应该考虑一下服务器端的情况了: 首先用在本地打开命令窗口,输入:ftp ftp服务器IP,窗口会提示你输入用户名密 ...

  5. Yii2框架---常用代码

    一.Php控制器跳转 return $this->redirect('/site/index/index');   二.回调自身控制器 self::actionXxxx();   三.获取当前用 ...

  6. realmock 前后端分离方案

    realmock 前后端分离方案 express + randomjson 模拟后端服务,前端服务器(比如webpack, nigix等)将请求代理到该服务器地址即可 github地址:https:/ ...

  7. ios模拟器bug

    Error: xcode-select: error: tool 'xcodebuild' requires Xcode, but active developer directory '/Libra ...

  8. ReactiveCocoa学习总结(2)

    信号(signal)- RACSignal类 1. 一般表示将来有数据传递,只要有数据改变,信号内部接收到数据,就会马上发出数据. 2. 事件类型: next:发送数据到下一个管道 error:发送数 ...

  9. ArcGIS 网络分析[1.5] 使用点线数据一起创建网络数据集(如何避免孤立点/点与线的连通性组合结果表)

    ArcGIS中最基本的三种矢量数据是什么?点线面. 网络中除了路网之外,还会有地物点. 如上图,我们在建立网络数据集的时候,作为实验,当然可以只是公路网.但是在大型的决策任务中,网络数据集就不只是公路 ...

  10. winows 服务器环境搭建 (碰到了windows服务器,小记一下吧~)

    1.连接远程服务器  安装wamp 2.查看wamp 默认端口号是否与对应windows 服务器冲突,如果冲突,则改之 WAMP装好之后默认的端口是80,但是这个80端口呢,可以热门端口啊,迅雷,II ...