java web 解决中文乱码问题(全面总结)

Java Web 中文乱码问题总结 java web 乱码 阅读详情
AI摘要

本文详细介绍了解决Web项目中各种中文乱码问题的方法,包括页面显示、客户端与服务器交互及数据库存储等环节的乱码处理技巧。

     

  在开发一个完整的web项目时,总是会遇到各种各样的中文乱码问题,例如页面显示乱码,表单提交乱码,数据库存储乱码等          等,虽然目前也能找到各种各样的解决方案,但是大部分都没有总结全面。(我也遇到了中文乱码问题 这是我抄袭来的 如果原作者需要 请通知我删除)

(1)准备知识

  凡是会出现乱码的地方都是由于编码的问题产生的,页面默认编码为ISO-8859-1,简体中文编码为GB2312,中文汉字集(简体与   繁体)编码为GBK,国际编码为UTF-8。由于UTF-8编码支持的语言类型最广,所以在这里建议凡是用到字符编码的地方都使用       UTF-8格式。接下来看看所有可能出现乱码场景的解决方案。

(2)页面显示乱码

  • html页面

  在页面的<head>标签内添加<meta>标签,内容如下

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">  (建议这个)

  或者

<meta charset="utf-8">

  • jsp页面

 在jsp页面的顶部加上以下代码,重点是charset=UTF-8和pageEncoding="UTF-8"

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>

 同时在<head>标签下添加<meta>标签,代码如下

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

 为了让所有新建的jsp页面默认为utf-8编码,可以在相应的IDE下设置。以eclipse为例,window > Prefrences > Web > JSP    Files > Encoding处改成支持UTF-8格式的选项。

web项目中的中文乱码问题

jsp页面编码设置

(3)客户端和服务器端传输乱码

  • tomcat配置

在tomcat安装目录下 > conf > server.xml,在server.xml文件中找到Connector port="8080"所在的标签,在标签内部添加URIEncoding="utf-8",添加后为

<Connector port="8080"

protocol="HTTP/1.1"

maxThreads="150"

connectionTimeout="200000"

redirecPort="8443"

URIEncoding="utf-8"/>

  • Request请求

例如以下请求方式

<a href="/myProject/displayServlet?username=张三&password=123">显示用户名和密码</a>

这种情况下,可以看出来该请求是GET请求,在接收请求时如果出现乱码,需要使用以下代码

username= new String(username.getBytes("ISO-8859-1"),"UTF-8")

在表单提交的时候,如果是POST请求,与GET请求不一样,添加的是以下代码

request.setCharacterEncoding("utf-8")

注意:request.setCharacterEncoding("utf-8")只在POST请求下生效

  • Response响应

在servlet中利用response进行输出时,如果出现乱码,需要添加以下代码

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

response.setCharacterEncoding("UTF-8")

  • struts.xml

如果使用了Struts2框架,在strust.xml文件中添加如下代码

<constant name="struts.i18n.encoding" value="UTF-8"></constant>

  • Filter

还有一种最保险的方法是添加自定义编码过滤器,或者使用spring自带的过滤器,在web.xml中添加以下代码

<filter>

<filter-name>encodingFilter</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>

(4)数据库插入乱码

在服务器获取到正确数据后,插入到数据库却出现乱码,很有可能是数据库的编码问题,按照以下方法来做可以避免这种问题

  • 安装

在数据库安装过程中会选择编码方式,此时选择utf-8格式

  • 创建数据库

在创建数据库的过程中,按照以下例子

CREATE DATABASE `share` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

  • 创建表

在创建表生成的SQL后面加上

ENGINE=InnoDB DEFAULT CHARSET=utf8;

  • 数据库连接(mysql)

在使用hibernate或者spring连接数据库时,按照以下例子

//hibernate.cfg.xml或者是applicationContext.xml

//要特别注意如果  写useUnicode=true&characterEncoding=UTF-8  出现错误,那就在&后加上  amp;  ,目的是转义

<property name="connection.url">

   jdbc:mysql://localhost:3306/数据库名字?useUnicode=true&amp;characterEncoding=UTF-8  
  </property>

(5)总结

 在完成上述的讲解后,基本不会出现乱码的情形,大家也可以尝试下。如果出现了乱码的情况,也不要着急,先冷静分析,乱码是 出现在哪一个环节,然后按照我讲的几部分去找对应的解决办法。

 同时也是教大家一种问问题的方式,先自己分析问题出在哪里,直接问别人“我的项目中出现了中文乱码,你能帮我看一下   么?”和“数据返回页面的时候出现乱码了,你能帮我看一下么?”你觉得别人会喜欢哪种提问方式呢?



终极完美解决java web与tomcat服务器中文乱码问题 Java Web项目中,如果使用的是Tomcat服务器的话,在数据交互时,经常会出现深恶痛绝 中文乱码的问题,原因主要可以分为以下两个方面: 1.在JSP页面中,中文根本无法显示。 这种情况下,通常的原因是: 没有把文件头的字符集设置为中文字符集。 解决办法:在文件头上写明如下内容: &lt;%@ page language="java" pageEncoding="utf-8"%&g... 阅读详情

相关推荐

java web 传智书城项目中文乱码问题的解决

关于一些在 java web 传智书城项目中一些问题的解决 1.中文乱码 引入JS文件造成的乱码问题 Filter造成的乱码问题 信息输出到数据库造成的乱码问题 起初遇到这些乱码问题的时候,还以为是一个方面的问题导致的乱码。但是在解决一个乱码,又碰到另一个乱码的时候,真的是感觉干啥啥不行,乱码第一名。 引入JS文件碰到的乱码,第一次遇见是在注册页面,源代码里在是一个 innerHTML中,源文件中发现之后,首先改了一下innerHTML 的值,发现英文可以正常显示。F12检查一下,结果发现引入的

久影的博客 1856

Java Web项目中解决中文乱码方法总结(三种最新方法)

Java Web项目中解决中文乱码方法总结(三种最新方法)

u012309366的专栏 4428

解决Java Web开发中前台传递的中文信息乱码问题

如果前台传递的中文信息仍然出现乱码问题,可能是由于编码转换错误导致的。在处理中文信息之前,需要对传递的参数进行正确的编码转换。通过以上设置字符集和编码转换的方法,可以有效解决Java Web开发中前台传递的中文信息乱码问题。在上述示例中,通过配置CharacterEncodingFilter过滤器来设置字符集为UTF-8。该过滤器会拦截所有请求,并将字符集设置为UTF-8。在Java Web开发中,常用的字符集是UTF-8。在上述示例中,首先将请求的字符集设置为ISO-8859-1。

HackCyberX的博客 795

Java Web中文乱码,解决方法!!

本编文章列举了Java Web编程中所有可能导致中文乱码的问题以及解决方法

m0_70470868的博客 1万+

解决Java Web开发中JSP页面读写MySQL数据时出现中文乱码问题

通过正确设置MySQL数据库的字符集、JDBC连接URL、JSP页面的字符集以及处理请求和响应的字符集,我们可以有效地解决JSP页面存储读取MySQL数据时出现的中文乱码问题。本文将详细介绍如何解决JSP页面存储读取MySQL数据时出现的中文乱码问题,并提供相应的源代码示例。在JSP页面存储和读取MySQL数据时,我们需要确保字符编码的一致性,以避免中文乱码问题的发生。请注意,示例中的代码仅供演示目的。下面是一个简单的示例代码,演示了如何在JSP页面中存储和读取MySQL数据时解决中文乱码问题。

VcyReact的博客 597

C# webclient中文乱码问题解决方法

本文介绍使用webclient抓取远程页面出现乱码的处理方法,希望对大家有所帮助。

JavaWeb response使用中造成的中文乱码问题解决

一、乱码原因 当我们使用response.getWriter().write();方法向浏览器中写入数据时,经常会出现中文乱码问题。首先我们要去了解一下关于response的write方法,write方法是将内容写入response缓冲区之中。而在缓冲区中所使用的编码是 ISO8859,这种编码方式是不支持中文的,所以无法识别我们所写入的中文信息。为了避免乱码问题,我们要是用 UTF-8 的编码方...

showadwalker的博客 3268

电源设计避坑指南:半桥LLC软启动的5个常见错误及解决方案

本文针对半桥LLC谐振变换器软启动过程中的五个常见设计错误,提供了详细的工程解决方案。重点分析了忽视谐振腔初始状态导致的电流冲击、软启动斜坡与环路带宽不匹配、开环到闭环切换时机不当、变压器偏磁以及参数未考虑边界条件等问题,并给出了包括主动预充电、自适应斜坡、最佳切换点判定等实用调试技巧,帮助工程师实现平稳可靠的电源启动。

weixin_29260291的博客 282

【Java 进阶篇】解决Java Web应用中请求参数中文乱码问题

解决Java Web应用中请求参数中文乱码问题是开发过程中常见的任务。通过正确配置字符编码和使用字符编码过滤器,可以确保请求参数能够正确解码,从而避免中文乱码问题的发生。在处理请求参数时,始终牢记字符编码的重要性,以确保数据的正确传输和显示。希望本文能够帮助你更好地理解和解决请求参数中文乱码问题。

繁依Fanyi的博客 3263

浙政钉H5应用上架实战:从环境配置到发布避坑指南

本文详细解析浙政钉H5应用上架全流程,从环境配置到发布避坑指南。重点介绍Vue 2.6 + Node 14.21.3的稳定开发环境搭建、项目结构规范及常见报错解决方案,帮助开发者高效完成浙政钉H5应用上架流程。

weixin_27943395的博客 286

SAP CKMLCP 月结7大常见报错:从“未找到成本核算运行”到“物料占用”的完整解决方案

本文深入解析SAP CKMLCP月结过程中的7大常见报错,从权限问题到数据一致性错误,提供系统化的解决方案。重点解决'未找到成本核算运行'和'物料占用'等典型问题,帮助财务人员高效完成成本核算月结,确保数据准确性。

weixin_30299709的博客 416

java中html中文乱码怎么解决,解决Java中Web开发的中文乱码问题

[之前总是碰到JSP页面乱码的问题,每次都是现在网上搜,然后胡乱改,改完也不明白原因。这次正好作下总结,中文乱码就是因为编码不符,可能出现乱码有四个地方:1 JSP编码对于大多数从事Java开发的程序员来说,Java中的中文乱码是个很头痛的问题。在Web开发中尤为凸显,明明在页面中输入的是中文,为什么在数据库中保存的却是不是中文,而是我们看不懂的文字。用程序中专业的术语来说,是乱码,不是我们所想要...

weixin_42510608的博客 6448

vuecil3+版本下,兼容ie等不支持es6的低版本浏览器

*综上,完成兼容性涉及到的配置的文件有,对应在页面中查看代码,就不单独附代码了:main.js。

yhr0322的博客 835

java不识别中文_Java Web项目中中文乱码或无法识别问题的解决方法总结

前言前两天在把一个小Java Web项目部署到实验室的服务器上时,出现了一个比较蛋疼的问题——搜索栏中文查询无结果。我当时就惊了,明明各个地方都加编码格式声明了啊,怎么会这样?结果折腾了很久,从浏览器到数据库查了一遍,最后发现是数据库连接串少了编码配置。。。真想给自己一巴掌ヽ(`Д´)ノ︵ ┻━┻。那么既然当时查了不少资料,索性总结一下,以后好提醒自己。更新2017.09.22 - 创建文章。方法...

weixin_34032649的博客 4138

【网络与爬虫 61】移动端App爬虫终极指南:Android-iOS应用数据提取黑科技全解析

本文全面解析移动端App爬虫技术,涵盖Android和iOS两大平台的数据提取方法。从基础的网络抓包到高级的代码注入,从自动化测试框架到反调试技术绕过,为开发者提供移动端数据采集的完整解决方案和实战经验。

熵数实验室 3029

【WRF-DART第一期】WRF/DART概述

【WRF-DART第一期】WRF/DART概述

WW、forever的博客 107

解决Java中Web开发的中文乱码问题

<br />      对于大多数从事Java开发的程序员来说,Java中的中文乱码是个很头痛的问题。在Web开发中尤为凸显,明明在页面中输入的是中文,为什么在数据库中保存的却是不是中文,而是我们看不懂的文字。用程序中专业的术语来说,是乱码,不是我们所想要的结果。那么这个问题应该怎么来解决呢?<br />      在做HTML页面时,为了统一页面中不会出现中文乱码问题,我们就把在<head></head>标签中<meta http-equiv="Content-Type" content="text/ht

我的专栏 3395

基于OpenClaw的自动化文件管理与文档分类系统设计与实现

本文介绍了一种基于OpenClaw的自动化文件管理与文档分类系统。系统采用三层架构设计,包含数据层、逻辑层和应用层,核心组件涵盖文件扫描、处理、分类、移动等功能。技术选型上使用Python/FastAPI作为后端,结合PostgreSQL/Elasticsearch/MinIO存储方案,并整合scikit-learn/PyTorch等AI技术实现智能分类。系统实现了文件递归扫描、增量扫描、元数据提取等功能,通过文件哈希和修改时间检测变化。该方案能有效提升文件管理效率,实现文档的自动化分类与智能管理。

一键难忘的博客 755

java web乱码问题_Java Web中文乱码问题解决

一、为什么会出现中文乱码问题:java内核和class文件是基于unicode码的,这使Java程序具有良好的跨平台性,但也导致在Java和JSP文件在编译时以及Java程序与其他媒介交互时等情况下产生中文乱码成为可能。编码方式的不一致,是造成中文乱码的根本原因。二、解决方法(简单粗暴):第一步:增加一个过滤器public class EncodingFilter implements Filte...

weixin_36485298的博客 5480

添加USB wifi驱动到RK3568

在日常开发中我们经常需要用到wifi功能,一般来说soc厂家都会事先做好了几个厂家的wifi驱动在内核源码目录下,我们只需要按原理图配置对应的设备树即可。常用的wifi的接口有:USBSDIOPCIE下面来介绍这这种接口是如何使用wifi芯片。提示:以下是本篇文章正文内容,下面案例可供参考本小节介绍了一个配置一个USBwifi驱动的整个流程,并没有介绍到SDIO,下小节基于AP6256介绍如何使用。

qq_24093081的博客 2049

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

java web 开发中中文乱码问题解决

在java web 开发中经常遇到中文乱码问题,下面我就来为大家将这些解决方法进行汇总: 1,在eclipse中,默认的JSP编码格式为ISO-8859-1,但是此格式不支持中文,一般我们编程使用UTF-8格式,更改eclipse的编码格式方式如下: window->preferences->General->Content Types->Text->JSP 2,当JSP

insulator2008的专栏 1351

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

Java web开发中的中文乱码问题解决之道 - 概要篇

本文转载地址http://www.lifevv.com/java/doc/20080229211915719.html仅供收藏  每一个JAVA WEB开发者都会碰到乱码问题。本文阐述了JAVA WEB开发中乱码的完全解决方法。  JAVA中,一个WEB应用从构成部分来看无非分3部分:  JSPJAVA程序(业务逻辑)数据库 要解决乱码问题,也从这3部分入手。  其实,我

走在java的路途上 630

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

java web项目——MySQL中文乱码问题解决

在我们开发java web项目使用MySQL数据库时,常会遇到中文乱码的问题,比如:使用MySQL命令行查询数据库中的表显示中文乱码;使用jdbc访问数据库读取到中文乱码;在jsp页面显示中出现中文乱码等等问题。

许文杰的博客 8089

java web 文件下载中文名乱码问题解决

设置header的Content-Disposition时,要用编码后的文件名。 方式一:urlFileNameString = new String(filenameString.getBytes(),"ISO-8859-1"); 方式二:urlFileNameString = URLEncoder.encode(filenameString,"UTF-8"); 在读取服务器文件时还是使用从request中直接读取的文件名filenameString。 完整代码如下: @WebServlet(

u010156872的博客 1028

Java Web 之解决中文乱码问题

编码:将字符转为二进制的过程。 解码:将二进制转为字符的过程。 默认服务端与客户端编码与解码情况: 服务端解码与编码一致:ISO-8859-1 客户端(浏览器)编码默认: 解码默认:GBK 解决WEB中乱码问题: 请求乱码: get请求: 修改 post请求: request.setCharacterEncoding(“UTF-8”); 响应乱码: response.setContentType(“text/html;charset=UTF-8”); ...

weixin_43946618的博客 236

java中文乱码decode_Java WEB开发中的中文乱码问题解决

在项目中总是遇到乱码问题,有时候在网上查找到了解决方案,但是没有记录下来为什么出现的乱码。因为出现乱码的方式有好几种,我简单总结一下吧,为以后留着用,也算总结学习一下。一般来讲,为了处理乱码问题,在javaweb中我们需要注意哪些地方?1、java文件的编码格式2、jsp页面的编码格式3、在servlet中对request、response对象的编码格式的设定4、浏览器中查看页面的字符集编码格式前...

weixin_39605578的博客 262
上一篇: 修改myeclipse2016 自带tomcat的端口(解决端口占用问题)
下一篇: 正则表达式入门
GreetTuring
博客等级 码龄11年 13粉丝 15原创
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值