关于jsp乱码问题的解决

关于jsp乱码问题的解决。

1,      最基本的乱码问题。
这个乱码问题是最简单的乱码问题。一般新会出现。就是页面编码不一致导致的乱码。

代码
  1. <%@ page language="java" pageEncoding="UTF-8"%>  
  2. <%@ page contentType="text/html;charset=iso8859-1"%>  
  3. <html>  
  4. <head>  
  5. <title>中文问题</title>  
  6. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">  
  7. </head>  
  8. </head>  
  9. <body>  
  10.   我是个好人   
  11. </body>  
  12. </html>  


三个地方的编码。
第一个地方的编码格式为jsp文件的存储格式。Ecljpse会根据这个编码格式保存文件。并编译jsp文件,包括里面的汉字。
第二处编码为解码格式。因为存为UTF-8的文件被解码为iso8859-1,这样 如有中文肯定出乱码。也就是必须一致。而第二处所在的这一行,可以没有。缺省也是使用iso8859-1的编码格式。所以如果没有这一行的话,“我是个好人”也会出现乱码。必须一致才可以。
  第三处编码为控制浏览器的解码方式。如果前面的解码都一致并且无误的话,这个编码格式没有关系。有的网页出现乱码,就是因为浏览器不能确定使用哪种编码格式。因为页面有时候会嵌入页面,导致浏览器混淆了编码格式。出现了乱码。

2,       表单使用Post方式提交后接收到的乱码问题
这个问题也是一个常见的问题。这个乱码也是tomcat的内部编码格式iso8859-1在捣乱,也就是说post提交时,如果没有设置提交的编码格式,则会以iso8859-1方式进行提交,接受的jsp却以utf-8的方式接受。导致乱码。既然这样的原因,下面有几种解决方式,并比较。
A,      接受参数时进行编码转换
String str = new String(request.getParameter("something").getBytes("ISO-8859-1"),"utf-8") ; 这样的话,每一个参数都必须这样进行转码。很麻烦。但确实可以拿到汉字。
B,       在请求页面上开始处,执行请求的编码代码, request.setCharacterEncoding("UTF-8"),把提交内容的字符集设为UTF-8。这样的话,接受此参数的页面就不必在转码了。直接使用
String str = request.getParameter("something");即可得到汉字参数。但每页都需要执行这句话。这个方法也就对post提交的有效果,对于get提交和上传文件时的enctype="multipart/form-data"是无效的。稍后下面单独对这个两个的乱码情况再进行说明。
C, 为了避免每页都要写request.setCharacterEncoding("UTF-8"),建议使用过滤器对所有jsp
  进行编码处理。这个网上有很多例子。请大家自己查阅。
3,      表单get提交方式的乱码处理方式。
如果使用get方式提交中文,接受参数的页面也会出现乱码,这个乱码的原因也是tomcat的内部编码格式iso8859-1导致。Tomcat会以get的缺省编码方式iso8859-1对汉字进行编码,编码后追加到url,导致接受页面得到的参数为乱码/、。
解决办法:
A,      使用上例中的第一种方式,对接受到的字符进行解码,再转码。
B,      Get走的是url提交,而在进入url之前已经进行了iso8859-1的编码处理。要想影响这个编码则需要在server.xml的Connector节点增加useBodyEncodingForURI="true"
属性配置,即可控制tomcat对get方式的汉字编码方式,上面这个属性控制get提交也是用request.setCharacterEncoding("UTF-8")所设置的编码格式进行编码。所以自动编码为utf-8,接受页面正常接受就可以了。但我认为真正的编码过程是,tomcat又要根据
<connector port="8080"></connector>maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="8443" acceptCount="100"
debug="0" connectionTimeout="20000" useBodyEncodingForURI="true"
disableUploadTimeout="true" URIEncoding=”UTF-8”/>
里面所设置的URIEncoding=”UTF-8”再进行一次编码,但是由于已经编码为utf-8,再编码也不会有变化了。如果是从url获取编码,接受页面则是根据URIEncoding=”UTF-8”来进行解码的。

4,      上传文件时的乱码解决
  上传文件时,form表单设置的都是enctype="multipart/form-data"。这种方式以流方式提交文件。如果使用apach的上传组件,会发现有很多乱码想象。这是因为apach的先期commons-fileupload.jar有bug,取出汉字后进行解码,因为这种方式提交,编码又自动使用的是tomcat缺省编码格式iso-8859-1。但出现的乱码问题是: 句号,逗号,等特殊符号变成了乱码,汉字如果数量为奇数,则会出现乱码,偶数则解析正常。
    解决方式: 下载commons-fileupload-1.1.1.jar 这个版本的jar已经解决了这些bug。
但是取出内容时仍然需要对取出的字符进行从iso8859-1到utf-8转码。已经能得到正常所有汉字以及字符。

5,      Java代码关于url请求,接受参数的乱码
url的编码格式,取决于上面所说的URIEncoding=”UTF-8”。 如果设定了这个编码格式,则意味着所有到url的汉字参数,都必须进行编码才可以。否则得到的汉字参数值都是乱码,例如
一个链接 Response.sendDerect(“/a.jsp?name=张大维”);而在a.jsp里面直接使用
String name = request.getParameter("name");得到的就是乱码。因为规定了必须是utf-8才可以,所以,这个转向应该这样写:
    Response.sendDerect(“/a.jsp?name=URLEncode.encode(“张大维”,”utf-8”);才可以。
如果不设置这个参数URIEncoding=”UTF-8”, 会怎么样呢? 不设置则就使用了缺省的编码格式iso8859-1。问题又出来了,第一就是参数值的个数如果是奇数个数,则就可以正常解析,如果使偶数个数,得到最后字符就是乱码。还有就是如果最后一个字符如果是英文,则就能正常解析,但中文的标点符号仍出现乱码。权宜之计,如果您的参数中没有中文标点符号,则可以在参数值最后加一个英文符号来解决乱码问题,得到参数后再去掉这个最后面的符号。也可以凑或使用。

6,      脚本代码关于url请求,接受到的参数乱码
脚本中也会进行页面转向的控制,也会涉及到附带参数,并在接受页面解析这个参数的情况。如果这个汉字参数不进行URIEncoding=”UTF-8”所指定的编码处理,则接受页面接受到的汉字也是乱码。脚本处理编码比较麻烦,必须有相应的编码脚本对应文件,然后调用脚本中的方法对汉字进行编码即可。
7,      关于jsp在MyEclipse中打开的乱码问题
对于一个已经存在的项目,Jsp文件的存储格式可能是utf-8。如果新安装的eclipse,则缺省打开使用的编码格式都是iso8859-1。所以导致jsp里面的汉字出现乱码。这个乱码比较容易解决,直接到eclipse3.1的偏好设置里面找到general-〉edidor,设置为您的文件打开编码为utf-8即可。Eclipse会自动重新以新的编码格式打开。汉字即可正常显示。

8,      关于html页面在eclipse中打开出现乱码情况
由于大部分页面都是由dreamweaver制作,其存储格式跟eclipse的识别有差别导致。
一般这种情况,在eclipse中新建一个jsp,直接从dreamweaver复制页面内容粘贴到jsp即可。

巨正则蒙特卡洛—甲烷和二氧化碳的竞争吸附GCMC 阅读详情

相关推荐

STM32----SPI+DMA高效读写外部Flash的配置与实战

本文详细介绍了STM32通过SPI+DMA高效读写外部Flash的配置与实战方法。针对大量数据传输场景,使用DMA技术可显著提升系统效率,释放CPU资源。文章包含完整的代码实现、常见问题调试技巧以及性能优化建议,帮助开发者快速掌握这一关键技术。

pea55的博客 1031

Eclipse中JSP文件中文乱码解决

刚来公司上班,配了一下开发环境,从经理那拷贝过来了几个工程,其中有一个web工程,导入到Eclipse中后,发布到tomcat服务器上后发现JSP页面中文显示乱码,在网上找了好多种编码格式和很多种原因,最后终于解决了,原因有三个地方 删掉了之前的工程,在向Eclipse中导入项目工程之前要先设置一下Eclipse的默认编码格式,有三个地方,下面分别教你如何设置三处编码格式,然后导

Thinkingcao的专栏 2万+

别再只做游戏了!用虚幻引擎5(UE5)给你的工厂车间做个数字双胞胎(附数据对接教程)

本文详细介绍了如何利用虚幻引擎5(UE5)构建工业数字孪生系统,实现工厂车间的智能可视化。通过UE5的高质量渲染和实时数据处理能力,结合OPC UA和MQTT协议,打造高效的数据对接方案,提升异常识别和设备管理效率。文章还分享了模型优化、可视化设计及典型工业场景的实战案例,助力企业迈向工业4.0。

weixin_33738555的博客 206

eclipse中JSP文件编写乱码问题及解决方案

eclipse中JSP文件编写乱码问题及解决方案 遇到问题 编译JSP文件后,网页中中文显示乱码 开始解决问题 注:若未创建JSP文件项目则只需前三个步骤 若创建了JSP文件项目...

youtufeitu的博客 4378

AI智能体项目管理框架agent-pm:从原理到实战的多智能体协作指南

在人工智能和自动化技术快速发展的今天,多智能体系统已成为实现复杂任务自动化的重要技术路径。其核心原理在于通过任务分解、角色分配和状态管理,让多个AI智能体像人类团队一样协同工作,从而突破单个模型的性能边界。这种架构的技术价值在于将软件工程中成熟的项目管理方法论引入AI领域,显著提升了自动化流程的可预测性、可观测性和可复用性。在实际应用场景中,多智能体协作框架能够高效处理从代码开发、文档撰写到数据分析等一系列任务,尤其适合需要多步骤、多专业协同的复杂项目。本文聚焦的agent-pm框架,正是这一领域的典型实践

weixin_42533910的博客 714

Zemax单模光纤耦合仿真避坑指南:数值孔径、模式匹配与镀膜影响详解

本文详细解析了Zemax单模光纤耦合仿真中的关键避坑要点,包括数值孔径的多重定义与换算、模式匹配度评估及镀膜影响分析。通过实际案例和技术公式,帮助工程师避免常见仿真误差,提升激光通信和光纤传感系统的设计精度。特别针对OpticStudio用户提供了实用的参数设置建议和优化策略。

weixin_30836759的博客 466

jsp中文乱码问题

关于jsp乱码问题的解决。1, 最基本的乱码问题。这个乱码问题是最简单的乱码问题。一般新会出现。就是页面编码不一致导致的乱码。<%@ page language="java" pageEncoding="UTF-8"%><%@ page contentType="text/html;charset=iso8859-1"%><html&g...

weixin_34413065的博客 325

基于Arduino 的 FM 调频收音机

这是一个基于 Arduino 的开源的收音机项目,它具备一台标准收音机的全部功能,从控制部分到外壳都可以自己 DIY。在项目中,我们将介绍让 FM 收音机调谐器的 RDA5807 模块与 I2C 协议进行通信的方法,整个过程只需要两根线就可以与 IC 通信,接线非常简单。3D 打印的外壳也非常简洁。总之,是个非常简单和实用的项目,来试试吧!

ByteBox的博客 1643

eclipse运行jsp文件时出现乱码解决方法

Java的web项目中jsp文件在运行时中文乱码: 方法一:这一般是因为我们在新建.jsp文件时,默认编写字符集的格式是:ISO-8859-1时,出现的中文乱码。解决方法如下,将图中标红的部分改为UTF-8即可: 方法二:先进Window——preferences——General——Workspace——Text file encoding修改为other选项,然后设置自己需要的编码格式。 方法三:在Eclipse中的Window——preferences——Content Type——Text

xg_17_38241417112的博客 6588

鲁棒控制理论 --- H∞ 控制(被裁篇)

鲁棒控制理论 --- H∞ 控制

记录老板的每次pua,分享领导每天的毒鸡汤... 6万+

什么是华为OD?怎么才能通过华为OD机试?华为OD机试怎么刷题?(2024最新华为OD机试E卷更新中)

华为OD是Outsourcing Dispacth模式,是华为和外企德科联合招聘的简称。目前华为大多数是OD招聘。OD模式也是华为提出的一种新的用工形式,每年都会从OD项目挑优秀员工转为正编。所有OD和正式员工一样对待,没有差别,部门平时开会、评审等活动都是一起参加的,是同薪同酬,都是由华为的HR直接定的薪资,看的是我们技术能力。华为是大企业,能到华为上班也是有能力的,每个部门都有好多职位,是金子,在哪都会发光。

KJ.JK 11万+

eclipse中web项目的.jsp文件在运行时中文乱码问题解决方案:

3.为了保险起见:我们需打开eclipse左上角的window----preference---Genaral---workSpace--右侧的Text-file-encoding一栏,勾选Other 然后设置编码格式选择utf-8.此字符集仅支持部分于欧洲使用的语言,不支持中文,因此运行起来就会出现乱码。编码是单字节编码,向下兼容。之间完全和ASCII一致,

Future_yzx的博客 1338

全球气候模式降尺度方法总结及其代码实现

简介总结各类型气候模式降尺度方法

WW、forever的博客 1万+

JSP中文乱码问题终极解决方案

在介绍方法之前我们首先应该清楚具体的问题有哪些,笔者在本博客当中论述的JSP中文乱码问题有如下几个方面:页面乱码、参数乱码、表单乱码、源文件乱码。下面来逐一解决其中的乱码问题。一、JSP页面中文乱码在JSP页面中,中文显示乱码有两种情况:一种是HTML中的中文乱码,另一种是在JSP中动态输出的中文乱码。先看一个JSP程序: 中文显示示例 这是一个中文显示示例: <% S

郗晓勇|利己者生,利人者恒 17万+

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

JSP解决中文乱码问题

一、JSP页面显示乱码 二、表单提交中文时出现乱码 三、数据库连接 大家在JSP的开发过程中,经常出现中文乱码的问题,可能一至困扰着您,我现在把我在JSP开发中遇到的中文乱码的问题及解决办法写出来供大家参考。 一、JSP页面显示乱码 下面的显示页面(display.jsp)就出现乱码:        JSP的中文处理

三石的专栏 980

IMSL CNL 7.0.0 (x86-64)Crack

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

解决JSP中文乱码问题

转载自:解决JSP中文乱码问题 文章目录前言一、 JSP页面乱码1、未指定使用字符集编码1、编码字符集设置不一致二、 表单提交中文时出现乱码1、POST提交方式A、 接受参数时进行编码转换B、通过request.seCharacterEncoding ("gb2312")对请求进行统一编码,就实现了中文的正常显示。C、为了避免每页都要写request.setCharacterEncoding("gb2312"),可以使用过滤器对所有jsp1、GET提交方式A、 使用POST提交方式解决办法的第一种方式,对接

GD_vigoss的博客 7613

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

JSP乱码问题及解决方法

 JSP乱码问题及解决方法2009-12-30     作者:   转载自:优快云     编辑:乐乐   点击进入论坛关键词:JSP  JSP乱码问题思考及解决方法  一、引起乱码的原因有:  1、响应中的乱码:即显示页面上的乱码,如index.jsp显示出来时,"用户名"显示为乱码  2、表单提交时的乱码:即在表单的文本框中输入为中文的时候提交到服务出

fpf_721521的专栏 1006

jsp乱码问题的一些解决方法

jsp乱码问题的一些解决方法         一、JSP页面显示乱码       下面的显示页面(display.jsp)就出现乱码:                   JSP的中文处理                               out.print("JSP的中文处理");       %>          

风之去向 817

简单解决jsp中文乱码问题

简单解决jsp中文乱码问题 初学jsp制作一个简单的响应页面 具体代码如下: <form action="test.jsp"> username : <input type="text" name="username" /> <br /> <input type="submit"> </form> Hello <%=request.getParameter("username")%> 保存为test.jsp文

ws15168689087的博客 2万+

解决JSP中的各种乱码问题

JSP乱码有几种情况:页面乱码、参数乱码、表单乱码、源文件乱码。下面逐一解决这些乱码问题:一、JSP页面中文乱码     在JSP页面中,中文显示乱码有两种情况:一种是在HTML中的中文乱码,另一种是在JSP动态输出的中文乱码。     先看一个JSP程序,包含了上述两种情况:<%@ page language="java" import="java.util.*" %> <html>

hicheney的博客 1343

JSP怎么解决中文乱码问题

一、JSP页面显示乱码 二、表单提交中文时出现乱码 三、数据库连接 大家在JSP的开发过程中,经常出现中文乱码的问题,可能一至困扰着您,我现在把我在JSP开发中遇到的中文乱码的问题及解决办法写出来供大家参考。 一、JSP页面显示乱码 下面的显示页面(display.jsp)就出现乱码: JSP的中文处理 <% out

热爱 1639

解决JSP调用JavaBean出现乱码问题

就一个例子: 程序的作用是在JSP页面输入一个值,传递给JavaBean,然后再从JavaBean中得到,并显示出来。 EmployeeBean.java //程序包 package com.JavaBean; //类说明 public class EmployeeBean { //设置私有变量 private String name; //构造方法 public Employ

hicheney的博客 2798
上一篇: SQLPLUS命令汇总
下一篇: Ajax 编写的用户注册实例及技术小节
flash59
博客等级 码龄20年 1粉丝 1原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值