问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

jSP包含页面出现乱码的问题???

发布网友 发布时间:2022-05-26 18:07

我来回答

3个回答

热心网友 时间:2023-10-15 11:39

一、Java中文问题的由来

Java的内核和class文件是基于unicode的,这使Java程序具有良好的跨平台性,但也带来了一些中文乱码问题的麻烦。原因主要有两方面,Java和JSP文件本身编译时产生的乱码问题和Java程序于其他媒介交互产生的乱码问题。

首 先Java(包括JSP)源文件中很可能包含有中文,而Java和JSP源文件的保存方式是基于字节流的,如果Java和JSP编译成class 文件过程中,使用的编码方式与源文件的编码不一致,就会出现乱码。基于这种乱码,建议在Java文件中尽量不要写中文(注释部分不参与编译,写中文没关 系),如果必须写的话,尽量手动带参数-ecoding GBK或-ecoding gb2312编译;对于JSP,在文件头加上或基本上就能解决这类乱码问题。

从页面form提交数据到java程序 byte->char
从java程序到页面显示 char—>byte

从数据库到java程序 byte—>char
从java程序到数据库 char—>byte

从文件到java程序 byte->char
从java程序到文件 char->byte

从流到java程序 byte->char
从java程序到流 char->byte

如果在以上转换过程中使用的编码方式与字节原有的编码不一致,很可能就会出现乱码。

二、解决方法

前面已经提到了Java程序与其他媒介交互时字符和字节的转换过程,如果这些转换过程中容易产生乱码。解决这些乱码问题的关键在于确保转换时使用的编码方式与字节原有的编码方式保持一致,下面分别论述(Java或JSP自身产生的乱码请参看第一部分)。

1、JSP与页面参数之间的乱码
JSP 获取页面参数时一般采用系统默认的编码方式,如果页面参数的编码类型和系统默认的编 码类型不一致,很可能就会出现乱码。解决这类乱码问题的基本方法是在页面获取参数之前,强制指定request获取参数的编码方式: request.setCharacterEncoding("GBK")或request.setCharacterEncoding ("gb2312")。
如果在JSP将变量输出到页面时出现了乱码,可以通过设置response.setContentType ("text/html;charset=GBK")或response.setContentType("text/html;charset= gb2312")解决。
如果不想在每个文件里都写这样两句话,更简洁的办法是使用Servlet规范中的过虑器指定编码,过滤器的在web.xml中的典型配置和主要代码如下:
web.xml:

CharacterEncodingFilter
net.vschool.web.CharacterEncodingFilter

encoding
GBK

CharacterEncodingFilter
/*

CharacterEncodingFilter.java:

public class CharacterEncodingFilter implements Filter
{

protected String encoding = null;

public void init(FilterConfig filterConfig) throws ServletException
{
this.encoding = filterConfig.getInitParameter("encoding");
}

public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException
{
request.setCharacterEncoding(encoding);
response.setContentType("text/html;charset="+encoding);
chain.doFilter(request, response);
}

}

热心网友 时间:2023-10-15 11:39

JSP是容易出现乱码问题,不过你只要注意以下几点就一定能搞定
1、保证你的文本编码与你所期望的编码相符(用写字板打开你的页面然后文件另存为,在编码位置选择你期望的文本编码,GB2312对应ANSI,UTF8当然对于UTF8了)
2、保证代码里面的声明编码与你的文本编码相符即:charset=gb2312"和<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
3、保证你的项目内所有页面编码统一,不要UTF8的页面嵌套或引用GB2312的页面,这样一定出现乱码
4、数据库的编码与你项目编码保证一致
5、推荐使用配置myeclips为你JSP的开发工具,能有效降低你出现乱码的可能

以上纯属个人经验,百试百灵

热心网友 时间:2023-10-15 11:39

要保证系统的不会出现jsp乱码的问题 首先要建议你统一文件编码为一种 推荐utf-8 然后可以写一个过滤器 (具体代码可到百度搜索)
相信你能解决的!!!
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
纯种萨摩和不纯的萨摩的区别 不是纯种萨摩,长大成型后和纯种萨摩外表一样吗 学播音主持和配音哪个更赚钱,各有各的长处 学播音真的能改变声音吗,会让自己的普通话更加标准 学习播音和配音的作用,可以提升自信和气质 普通人学配音有没有用,有兴趣则有用 什么是永诚财产保险股份有限公司 win10电脑升级不了ie11win10怎么升级ie11 电脑硬件保修哪些电脑硬件保修包括什么 电脑固态硬盘质保几年一般的电脑保修时间是多久 《思维导图》有用吗 兰蔻修护精华乳和修护乳液有什么区别 精华液和乳液有什么区别 信用卡的到期还款日是什么意思?我很笨的,不要用专业话语说,最好居例子,非常感谢 信用卡如果过期不还款会出现什么情况? 信用卡到期还款日是什么意思已出账单查不到? 但是在软件里查询剩余应还为0是什么情况 急~~提供一些关于酒店服务质量管理的参考文献??? 交通银行信用卡账单已过期是什么? 当前酒店服务质量管理的文献综述 信用卡逾过期有什么不好 酒店如何有效提高酒店服务质量 如何提升酒店服务质量 怎么提高酒店服务质量管理 信用卡逾期两个月一次性还清后信用卡还能用吗 小柏林主演的电影名 面试穿什么鞋?买了一套便宜的黑色西服,有一双棕色皮鞋,可以配吗? 林正英演过些什么电影?(是哪几部,说名字) 黑色西服配什么皮鞋好,棕色可以吗 分手之后,男人都会变得很绝情,为什么会这样子? 孩子补钙过多会造成早熟吗 黑色禁药的小悠小野是什么书 急寻8年级英语书面表达6篇 小天鹅、大灰狼、鳄鱼…选几个动物编一个故事 北京大学艺术生的录取分数线是多少? 北京大学艺术系录取分数线 请问今年的清华北大的分数线是多少,艺术生,国防生的呢? u友卡不交费会被移动拉黑吗 u友手机卡怎么样 (语文高手快进) 阅读题!速度快的上!有赏啊!!! 腊八节和腊八粥 我的美丽日记系列面膜美白效果最好的是什么? 我的美丽日记哪款面膜祛痘效果好,哪款面膜美白效果好,哪款面膜保湿效果好? 我的美丽日记面膜补水哪个好? 我的美丽日记面膜哪个系列补水效果好 我的美丽日记哪款面膜补水效果好 我的美丽日记补水哪种面膜比较好 梦幻里面的坐骑怎么获得?有什么用处吗?我109级。过坐骑剧情需要找什么级别的人帮忙? 游泳馆需要那些相关手续 中央电视台综艺剧频道有这个频道吗?