中文乱码问题

  • 一、乱码产生原因
  • 二、请求乱码解决方案
    • 2.1 针对POST提交方式
    • 2.2 针对GET提交方式
    • 2.3 万能解决方案
  • 三、响应乱码解决方案

当页面中提交包含中文的请求时,在服务端有可能出现中文乱码问题。

一、乱码产生原因

Http协议中规定,数据传输采用字节编码方式,因为通信的数据不仅仅是字符。当用户通过浏览器提交一个包含 UTF-8 编码格式的两个字的中文请求时,浏览器会将这两个中文字符变为六个字节(一般一个 UTF-8 汉字占用三个字节),并将这六个字节上传至 Tomcat 服务器。
Tomcat 服务器在接收到这六个字节后,并不知道它们原始采用的是什么字符编码。而Tomcat默认的编码格式为 ISO-8859-1。所以会将这六个字节按照 ISO-8859-1 的格式进行编码,编码后在控制台显示,所以在控制台会显示乱码。

二、请求乱码解决方案

2.1 针对POST提交方式

在接收请求参数之前先通过 request 的 setCharacterEncoding()方法,指定请求体的字符编码格式。

注意:这种方式只能解决POST提交方式中的乱码问题,对于GET提交方式不起作用。因为该方法设置的是请求体中的字符编码,GET提交中的参数不出现在请求体中,而出现在请求行

2.2 针对GET提交方式

对于请求路径中所携带参数的解析,由 Tomcat 服务器完成。而 Tomcat 服务器的字符编码默认为 ISO8859-1,所以会将请求路径中所携带的数据,按照 ISO8859-1 进行编码。

可以通过修改Tomcat默认字符编码的方式来解决GET提交方式中携带中文的乱码问题。

重启 Tomcat 服务器后, GET 提交方式的中文乱码问题解决。

2.3 万能解决方案

该方式无需设置 Tomcat 中的 server.xml 中的 Tomcat 默认字符编码,无需设置 request 的请求体的字符编码。该方式针对 POST 与 GET 提交方式,均起作用。

三、响应乱码解决方案

response 对象获取流的编码字符集是 ISO-8859-1,浏览器默认的字符编码是 GBK(GB2312)

PrintWriter pw = response.getWriter();        // 获取的流的默认编码是 ISO-8859-1

【解决办法】:获取流对象之前,设置流的编码

response.setContentType("text/html;charset=utf-8");

Java中文乱码问题如何解决?相关推荐

  1. 微信小程序java中文乱码_如何解决微信小程序显示中文无法上传或者出现乱码的问题?...

    今天小编给大家讲解如何解决微信小程序显示中文无法上传或者出现乱码的问题?有需要或者有兴趣的朋友们可以看一看下文,相信对大家会有所帮助的. 在formData中对文字进行编码,使用encodeURI() ...

  2. java中文乱码解决之道(二)—–字符编码详解:基础知识 + ASCII + GB**

    原文出处:http://cmsblogs.com/?p=1412 在上篇博文(java中文乱码解决之道(一)-–认识字符集)中,LZ简单介绍了主流的字符编码,对各种编码都是点到为止,以下LZ将详细阐述 ...

  3. java 中文乱码过滤器_JAVA中文乱码过滤器(用java过滤器解决中文乱码)V0422 整理版...

    JAVA中文乱码过滤器(用java过滤器解决中文乱码)V0422 整理版 不用再担心java中文乱码问题,一步到位,一次性解决.更方便更快捷. web-xml配置 EncodingFilter com ...

  4. [转]java中文乱码解决之道(三)-----编码详情:伟大的创想---Unicode编码

    http://www.cnblogs.com/chenssy/ java中文乱码解决之道(三)-----编码详情:伟大的创想---Unicode编码 随着计算机的发展.普及,世界各国为了适应本国的语言 ...

  5. java中文乱码 例子_JSP中文乱码常见3个例子及其解决方法

    常见3个例子及其解决方法如下 实例一.jsp页面显示时 中文乱码--jsp页面显示时 木兰辞拟古决绝词柬友 人生若只如初见,何事秋风悲画扇. 等闲变却故人心,却道故人心易变. 骊山语罢清宵半,泪雨霖铃 ...

  6. java中文乱码的原因及解决方法

    在java开发中都能遇到java中文乱码的情况,怎样才能够恰当地选择汉字编码方式并正确地处理汉字的编码呢?希望通过下面的总结的java中文乱码解决方法对遇到过此类问题的朋友有所帮助. 首先,要想解决j ...

  7. jquery.ajax的url中传递中文乱码问题的解决方法

    jquery.ajax的url中传递中文乱码问题的解决方法 JQuery JQuery默认的contentType:application/x-www-form-urlencoded 这才是JQuer ...

  8. J2EE (六) 详解 java 中文乱码

    简介 在Java项目的开发过程中,经常会出现中文乱码的情况,这也是一直是困扰大家的一个问题,很多的程序员都会经常遇到这个问题. 有时捣鼓调试半天也摸不着头绪,不知道究竟哪里出了问题,那是你还不清楚出现 ...

  9. 【已解决】对JSP页面传值中文乱码的简单解决方法

    很多java程序员在日常的工作中总会遇到对JSP页面传值中文乱码的情况,一些朋友由于操作不当,造成了很大的麻烦.本文将为大家讲解关于对JSP页面传值中文乱码的简单解决方法的内容. 方法/步骤 方法一: ...

  10. sql 转html 中文乱码问题,SqlServer中文乱码问题的解决方法

    SqlServer中文乱码问题的解决方法 我流程里,使用的是gbk,或gb2312编码格式,utf-8还没试过. 1)jsp页面: //1.下面这句是解决乱码的关键之一,下面这句不仅影响中文,还影响布 ...

最新文章

  1. linux中使用apt-get安装软件包的时候报错:E: Could not get lock /var/lib/dpkg/lock-frontend
  2. 【问链财经-区块链基础知识系列】 第三十一课 Fabric版本变迁之路从1.1-1.4
  3. HDU4099(斐波那契数列与字典树)
  4. webpack(1)-简介和基础知识
  5. 基于IdentityServer4 实现.NET Core的认证授权
  6. C++中const char *p和char const *p
  7. 带参数的URLconf
  8. Taro+react开发(13)--多加/不然不能跳转
  9. LeetCode 1863. 找出所有子集的异或总和再求和(DFS)
  10. 免费又好用的录音软件推荐
  11. 打开计算机不显示硬盘盘符,电脑硬盘不显示盘符怎么办 移动硬盘不显示盘符的原因...
  12. Microsoft Teams 思维导图的4大好处,你知道怎样创建吗?
  13. 基于JAVA HAPI包以树形结构实现可配置式 HL7消息接收与解析
  14. BeanUtils.populate的用法
  15. python读书心得体会范文_读书心得体会范文五篇-读书心得体会
  16. 前端构建工具Gulp的学习和使用
  17. 补码原理——负数为什么要用补码表示
  18. EndNote20批量将参考文献中的DOI导出
  19. 2023届求职 笔试面试记录
  20. C++:实现量化SMM Caplet α 校准测试实例

热门文章

  1. 顶级外语学习资源[转] 近600个教学学习资料链接
  2. 从Delphi应用程序创建发票,可视化报告生成器FastReport VCL轻松搞定
  3. 单径瑞利信道中的BPSK相干解调的(理论)误码率性能
  4. 诺顿企业版10.0 简体中文版
  5. flash html 通信,Javascript与flash交互通信基础教程
  6. RestClientException: Could not extract response: no suitable HttpMessageConverter found for response
  7. 怎么在小芭比Puppy Linux中文版中集成软件
  8. Java程序员面试常见问题
  9. Ruby On Rails简介
  10. linux weblogic部署项目路径,Weblogic部署web项目获取项目根目录为null