页面乱码解决4种方案

德城飞哥

德城飞哥

2016-02-19 20:16

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

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

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

  一、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 

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

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

   程序代码
  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()来转换编码。

展开更多 50%)
分享

猜你喜欢

页面乱码解决4种方案

Web开发
页面乱码解决4种方案

ajax中文乱码解决方案

Web开发
ajax中文乱码解决方案

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

解决远程页面抓取中的乱码问题?

Web开发
解决远程页面抓取中的乱码问题?

DW2004 中文乱码解决方案

Web开发
DW2004 中文乱码解决方案

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

用XMLHTTP Post/Get HTML页面时的中文乱码之完全Script解决方案

ASP
用XMLHTTP Post/Get HTML页面时的中文乱码之完全Script解决方案

DW2004 中文乱码解决方案 3

Web开发
DW2004 中文乱码解决方案 3

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

用VB编程检测当前电池使用情况

用VB编程检测当前电池使用情况

Linux系统安装VMware Tools指南

Linux系统安装VMware Tools指南
下拉加载更多内容 ↓