根据上篇记录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. Linux - PCB之task_struct结构体

     task_struct结构描述  1. 进程状态(State) 进程执行时,它会根据具体情况改变状态 .进程状态是调度和对换的依据.Linux中的进程主要有如下状态,如表4.1所示. 内核表示 含义 ...

  2. java面试题—精选30道Java笔试题解答(一)

    下面都是我自己的答案非官方,仅供参考,如果有疑问或错误请一定要提出来,大家一起进步啦~~~ 1. 下面哪些是Thread类的方法() A start() B run() C exit() D getP ...

  3. bzoj3064 Tyvj 1518 CPU监控

    Description Bob需要一个程序来监视CPU使用率.这是一个很繁琐的过程,为了让问题更加简单,Bob会慢慢列出今天会在用计算机时做什么事. Bob会干很多事,除了跑暴力程序看视频之外,还会做 ...

  4. 蓝桥杯-手机尾号-java

    /* (程序头部注释开始) * 程序的版权和版本声明部分 * Copyright (c) 2016, 广州科技贸易职业学院信息工程系学生 * All rights reserved. * 文件名称: ...

  5. ASP.NET Core实现强类型Configuration读取配置数据

    前言 实现读取JSON文件几种方式,在项目中采取老办法简单粗暴,结果老大过来一看,恩,这样不太可取,行吧那我就用.NET Core中最新的方式诺,切记,适合的才是最好的,切勿懒. .NET Core读 ...

  6. DDD理论学习系列(1)-- 通用语言

    1.引言 在开始之前,我想我们有必要先了解以下DDD的主要参与者.因为毕竟语言是人说的吗,就像我们面向对象编程一样,那通用语言面向的是? DDD的主要参与者:领域专家+开发人员 领域专家:精通业务的任 ...

  7. trait技术详解,这次包你学得会

    trait的使用技巧trait是php5.4以后新增加的一个功能,可以将多个类中,共用的一些属性和方法提取出来做来公共trait类,就像是装配汽车的配件,如果你的类中要用到这些配件,就直接用use导入 ...

  8. OC—不可变字符串NSString

  9. c#接口使用详解

    c#接口使用详解 c#中接口隐式与显示实现 c#中接口可以隐式实现.显示实现,隐式实现更常使用.显示实现较少使用 其区别在于 显示实现避免接口函数签名冲突 显示实现只可以以接口形式调用 显示实现其子类 ...

  10. 基于Kubernetes的WAF集群介绍

    Kubernetes是Google开源的容器集群管理系统.它构建Docker技术之上,为容器化的应用提供资源调度.部署运行.服务发现.扩容缩容等整一套功能,可看作是基于容器技术的PaaS平台. 本文旨 ...