试论JSP技术中文乱码的原因及解决方法

来源 :科技尚品 | 被引量 : 0次 | 上传用户:wwchao
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘 要:JSP技术是动态网页制作的关键,也是现今主流的动态网页制作技术。在网页的设计和开发过程中,经常会出现一些中文乱码的问题,严重影响动态网页的开发和使用。所以本文先分析了常见的中文编码格式,然后从4个方面详细阐述了中文乱码的问题及解决方法。
  关键词:JSP技术;中文乱码;原因;解决方法
  由于在动态网页制作中,中文主要是利用特殊的字符编码方式,因此在网页制作中很容易产生乱码问题。利用JSP技术开发的WEB平台在任何一个操作系统之上都能使用,中文乱码会给设计人员造成很大的困扰。由此可见,解决中文乱码问题是JSP技术开发动态网页必须解决的重要问题。
  1 常见编码格式
  (1)ISO-8859-1编码,也称之为Latin-1编码。ASCII 编码的128个字符显然是不够用的,因此ISO组织在此基础上进行了拓展,从 ISO-8859-1到ISO-8859-15,应用最广泛的是ISO-8859-1,主要因为ISO-8859-1是单字节编码。
  (2)Unicode编码。Unicode是目前最统一的编码格式,但是它却不兼容其他任何编码格式。另外,通常所说的UTF-16,就是Unicode字符在计算机中存取的方法。
  (3)GBK编码。它是GB2312的拓展,总共含有23 940 个码位,能表示21 003个汉字,并且它与 GB2312编码格式兼容。
  (4)UTF-8。它的主要原理是通过变长技术,使不同类型的字符能够由1~6个字节组成。
  2 乱码问题及解决对策
  中文乱码问题一般会出现两种情况:一是在HTML中,二是在JSP动态输出中。造成中文乱码的原因有多种,只有深入分析找到乱码的位置和原因,才能解决问题,提高动态网页制作效率。
  2.1 页面乱码问题
  如果在进行程序调试时,在显示界面该出现中文的地方,显示的是字符或问号。对这种情况的解决方案是,在jsp页面的头部加入以下代码<%pagecontentType=”text/html;charset=gb2312”%>,如下列的程序:
  <%@ page language=”java” import=”java.util.*” %>
  
  
  中文显示示例
  
  
  这是一个中文显示示例:
  <%
  String str = “中文”;
  out.print(str);
  %>
  
  
  经过浏览器显示之后,本该出现中文显示示例的中文字符,结果却显示了“? ? ? ?? ? ???? ? ?”这种符号,在处理这种中文乱码问题时,可以将jsp头部改成<%@ page language=”java”import=”java.util.*”contentType=”text/html;charset=GB2312” %> 这样中文汉字即可正常显示。
  2.2 参数传递时出现乱码问题
  参数传递时出现乱码问题,只要在传递参数时,进行编码转换就可以解决。具体代码为<%String str=newString(request.getParameter(“str”).getBytes(“iso-8859-1”),”gb2312”);%>。
  如下列程序:
  <%@ page language=”java” import=”java.util.*” contentType=”text/html;charset=gb2312”%>
  
  
  URL传递参数中文处理示例
  
  <%
  String param = request.getParameter(“param”);
  %>
  
  请点击这个链接

  你提交的参数为:<%=param%>
  
  
  在程序运行之后,有时会显示提交的参数为’???’。这种乱码在动态网页的设计开发中经常会发生。其解决方法是,在原来代码中添加URI编码设置URIEncoding=“gb2312”。这样在进行程序运行之后,就能够显示正常的参数。
  2.3 表单乱码问题
  表单问题产生的主要原因是提交表单的方法程序并不支持中文字符,通常默认的编码格式是ISO-8859-1。一般解决这种问题的方法是,在页面中或是sevlet中以及在过滤时进行解决,如设置 request 和 response 的编码(页面编码必须为 u8),或者是添加
属性。无论是采用哪种解决方法,都需要程序员根据实际的程序来选择。
  2.4 浏览器不识别问题
  浏览器不识别问题的主要表现就是在提交中文字符时出现乱码问题,而提交英文字符时则显示正常。产生这种问题的主要原因是浏览器默认的编码格式和程序编码格式不兼容,浏览器无法识别中文字符。解决这种问题只须通过request.setCharacterEncoding(“gb2312”)对请求进行统一编码即可。这样经过编码格式的统一之后,中文字符就会正常显示。
  3 总结
  综上所述,中文乱码产生的主要原因是编码格式的不统一,并且编码格式之间基本不兼容。另外,在处理中文乱码问题时,找到乱码问题的原因是解决问题的关键。由此可见,深入了解JSP技术是非常有必要的。
  参考文献
  [1]徐珊.JSP技术中的中文乱码成因与对策探析[J].山东工业技术,2015,(19):220.
  [2]梅锦峰,阳小兰,钱程,等.JSP初学者遇到的中文乱码问题及解决方案[J].黑龙江科技信息,2016,(4):180.
  (作者单位:哈尔滨市南岗房产经营物业管理有限责任公司第一分公司)
其他文献
【摘要】近年来,随着我国经济的不断发展,我国教育事业也取得了前所未有的发展空间。随着新课改的不断深化,素质教育越来越受到人们的重视。小学语文是一门非常重要的课程,为小学生语文教育起始阶段。良好的语文教学可以有效培养小学生的语言表达能力及读写能力,使学生学会更加丰富的知识,同时有利于理解其他学科的知识。本文将简单分析提高小学语文教学效果的对策,希望能对同行起到一点作用。  【关键词】小学语文 教学效
比较22份(包括待检材料4份)共计12种药用石斛及密花石豆兰(1份)的叶绿体DNA matK基因序列差异,从分子水平对药用石斛进行鉴定。采用改良的CTAB法提取石斛基因组DNA,PCR扩增,
【摘要】动物繁殖学是动物科学专业的基础课程,具有专业性强、实践性强、覆盖面广的特点。为了将动物繁殖学讲透,讲得通俗易懂,充分体现出其专业性和实践性的特点,我们研究组针对该课程进行了一些教学改革的实践探索,本文就此进行阐述和总结。  【关键词】动物繁殖学 团队教学 教学改革  【中图分类号】G642.0 【文献标识码】A 【文章编号】2095-3089(2016)08-0159-01  动物繁殖学是
以660 MW超超临界机组为例,提出零号高加式宽负荷脱硝技术,并运用汽轮机热平衡计算和锅炉热力计算进行经济性分析.该技术通过在一号高压加热器之前增设零号高压加热器来提高
随着社会经济的不断向前发展,人才成为越来越稀缺的资源,而人才的核心竞争优势则来自于自身知识的积累。研究表明,内隐知识已经超越传统的智力知识,成为维系人才核心竞争力的
摘 要:用光纤网络、监控技术和界域警报技术来组建远距离管线监控系统。在管线内部安装网络摄像机等设备,在建筑内部架设红外探头,实现红外警报和视频监控联动,通过SDH光纤传输将采集的信号传给监控中心,实现视频影像的时时调看和远程管理。  关键词:SDH网视频监控;线路传输;界域警报  1 综合概述  根据管线中设施的运行和科学系统化的管理需求,为了对突发状况能做出判别和处置,需要在管线内架设监控系统,
摘 要:随着我国科技的不断进步,计算机电子信息技术也在逐渐发展,自动化技术已经在社会上得到了广泛的应用。在信息工业中,自动化技术能够节省人力资源,让资源得到合理的利用,提高劳动生产效率。自动化技术在电子信息工程中也起到了关键的作用,本文就对自动化技术在电子信息工程设计中进行分析研究,研究其在电子信息工程中的应用。  关键词:自动化技术;电子信息;应用;探究  1 前言  自动化技术是以网络和信息为
摘 要:随着21世纪的到来,网络化、信息化迅速发展,企业要想在激烈的市场竞争中立于不败之地,积极引进计算机技术、提高企业信息化成为降低企业成本、提高管理效率、增强企业竞争力的有效对策。本文首先介绍了企业信息化发展的概念,其次分析了企业信息化的发展现状,再次分析了计算机应用技术对于企业信息化建设的优势,最后分析了计算机应用技术在企业信息化过程中的具体实施。  关键词:计算机;应用技术;企业;信息化 
从美国资本市场和上市公司的发展来看,评价和报告内部控制起初是自愿的,后来也曾经建议变成强制性要求,但直到2001年安然系列财务舞弊案发生之后,上市公司内部控制的评价与报告才
我国报刊业正蓬勃发展,也面临着前所未有的挑战。数字化、融合化、全球化以排山倒海之势,令报刊业时刻受到强烈的冲击,因此,必须尽快推行数字出版战略,以免落后于时代发展。