页面乱码解决4种方案

2016-02-19 20:16 3 1 收藏

在这个颜值当道,屌丝闪边的时代,拼不过颜值拼内涵,只有知识丰富才能提升一个人的内在气质和修养,所谓人丑就要多学习,今天图老师给大家分享页面乱码解决4种方案,希望可以对大家能有小小的帮助。

【 tulaoshi.com - Web开发 】

  下边提供4种不同情况的乱码解决方案,基本上包括了web开发中出现乱码的不同情况。
  主要针对java+mysql开发环境提出的乱码解决方案,只要作相应修改,可以用于不同语言环境的乱码问题解决。

  一、JSP页面显示乱码 
  下面的显示页面(display.jsp)就出现乱码: 

   程序代码
  html 
  head 
  titleJSP的中文处理/title 
  meta http-equiv="Content-Type" content="text/html; charset=gb2312" 
  /head 

  body 
  % 
  out.print("JSP的中文处理"); 
  % 
  /body 
  /html
   
  对不同的WEB服务器和不同的JDK版本,处理结果就不一样。原因:服务器使用的编码方式不同和浏览器对不同的字符显示结果不同而导致的。解决办法:在JSP页面中指定编码方式(gb2312),即在页面的第一行加上:%@ page contentType="text/html; charset=gb2312"%,就可以消除乱码了。完整页面如下: 
  %@ page contentType="text/html; charset=gb2312"% 
  html 
  head 
  titleJSP的中文处理/title 
  meta http-equiv="Content-Type" content="text/html; charset=gb2312" 
  /head 

  body 
  % 
  out.print("JSP的中文处理"); 
  % 
  /body 
  /html 

  二、表单提交中文时出现乱码
  下面是一个提交页面(submit.jsp),代码如下: 

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/webkaifa/)

   程序代码
  html 
  head 
  titleJSP的中文处理/title 
  meta http-equiv="Content-Type" content="text/html; charset=gb2312" 
  /head 

  body 
  form name="form1" method="post" action="process.jsp" 
  div align="center" 
  input type="text" name="name" 
  input type="submit" name="Submit" value="Submit" 
  /div 
  /form 
  /body 
  /html
   
  下面是处理页面(process.jsp)代码: 

   程序代码
  %@ page contentType="text/html; charset=gb2312"% 
  html 
  head 
  titleJSP的中文处理/title 
  meta http-equiv="Content-Type" content="text/html; charset=gb2312" 
  /head 

  body 
  %=request.getParameter("name")% 
  /body 
  /html

  如果submit.jsp提交英文字符能正确显示,如果提交中文时就会出现乱码。原因:浏览器默认使用UTF-8编码方式来发送请求,而UTF-8和GB2312编码方式表示字符时不一样,这样就出现了不能识别字符。解决办法:通过request.seCharacterEncoding("gb2312")对请求进行统一编码,就实现了中文的正常显示。修改后的process.jsp代码如下: 

   程序代码
  %@ page contentType="text/html; charset=gb2312"% 
  % 
  request.seCharacterEncoding("gb2312"); 
  % 
  html 
  head 
  titleJSP的中文处理/title 
  meta http-equiv="Content-Type" content="text/html; charset=gb2312" 
  /head 

  body 
  %=request.getParameter("name")%
  /body 
  /html 

  
  三、数据库连接出现乱码 
  只要涉及中文的地方全部是乱码,解决办法:在数据库的数据库URL中加上useUnicode=true&characterEncoding=GBK就OK了。 

  四、数据库的显示乱码 
  在mysql4.1.0中,varchar类型,text类型就会出现中文乱码,对于varchar类型把它设为binary属性就可以解决中文问题,对于text类型就要用一个编码转换类来处理,实现如下: 

   程序代码
  public class Convert { 
  /** 把ISO-8859-1码转换成GB2312 
  */ 
  public static String ISOtoGB(String iso){ 
  String gb; 
  try{ 
  if(iso.equals("") || iso == null){ 
  return ""; 
  } 
  else{ 
  iso = iso.trim(); 
  gb = new String(iso.getBytes("ISO-8859-1"),"GB2312"); 
  return gb; 
  } 
  } 
  catch(Exception e){ 
  System.err.print("编码转换错误:"+e.getMessage()); 
  return ""; 
  } 
  } 
  }
   
  把它编译成class,就可以调用Convert类的静态方法ISOtoGB()来转换编码。

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/webkaifa/)

来源:https://www.tulaoshi.com/n/20160219/1623216.html

延伸阅读
标签: Web开发
一类是出现乱码,另外一类是出现javascript系统错误:-1072896658的。提示在XX.innerHTML=xmlhttp.responseText;这行。 其实都是因为编码不统一引起的。解决方法就是加入指定字符编码指令。 一、什么是字符编码 定义见:http://zh.wikipedia.org/wiki/%E5%AD%97%E7%AC%A6%E7%BC%96%E7%A0%81。 通俗的讲:你看到的“我”是一张小图片,每个汉...
标签: ASP
      常有人说,他们在使用XMLHTTP过程中,总是为中文乱码的问题烦恼。本人查阅了一些资料,结果令我失望,大家都是使用ASP服务器端技术解决该问题。     先分析一下为何会出现中文乱码的问题。原因很简单:XMLHTTP得到Response时假定Response是UTF8编码的,它把含GB2312编码的HTML当成UTF8格式,因此,...
标签: Web开发
由于平时使用的网页文件基本上都是gb2312编码方式,如果通过xmlhttp控件读取的话,肯定会出现乱码问题,但是要把所有文件都改成utf-8编码,操作上比较麻烦。经过反复比较,我找到了相对实用的解决方法。 ff提供了overrideMimeType方法,可以指定返回值的编码,所以解决起来比较简单,只要把这个方法指向gb2312就可以了。对于IE,可以用vb...
标签: Web开发
多个文件服务器读写,这里可采用SMB协议 页面静态化,可采用freemarker开源框架 如果考虑到大量的读写请求,则将请求分布式或采用调度的办法来解决 第一点我们首先应该考虑文件服务器与静态页面的映射关系,即什么文件应该读写到哪台服务器,这个关系最简单的办法是随机映射,然后将映射关系保存到数据库中即可,SMB常用的操作代码如下: 代...
中文问题,是在应用中常常遇到的问题。 这将涉及到字符解码操作,我们在应用中常常会用new String(fieldType.getBytes("iso-8859-1"), "UTF-8");等类似的方法去解码。但这种方式受具体应用环境限制,往往在应用部署环境发生改变时,还会出现中文乱码。 在这里介绍一种解决方法,可以在任何应用部署环境下通用。此方法分两步: 1、在客户端用...

经验教程

613

收藏

72
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部