管理者论坛
专业源于专注
www. onlyIt. cn   
管理论坛 理论模型 资料中心 企业软件 技术论坛 »

绿色免费专业软件:绝非虚构,千万企业已经选择,赶快行动!!   
人力资源软件 | 进销存软件 | 库管软件 | 客户关系管理 | 财务管理 | 更多免费 ... 战略理论 | 市场营销 | 人力资源 | 组织行为 | 财务金融 | 产品生产 | 经济学 | 专题文章


  • easyit于06-01-17 15:53发表:


  • 我们知道在同一台机器上,所有的编码方式都是一样的,一般中文平台是gb2312,英文平台是ISO-8859-1,但是网络上的两台机器并不能保证他们的编码方式都是一样的,这时候就有可能出现乱码的问题。 
    在进行HTTP网络传输的时候,统一采用的编码方式是ISO-8859-1,这时候如果还是按照本地编码来传输就会出现问题,这也是Servlet在实现网络传输的时候一个不完美的地方,它不会自动进行本地编码到ISO-8859-1的转换,所以直接打印的话就会出现乱码。 
      中文问题jsp里得到了简化,本地的中文字符串不需要编码转换就能够正常在客户端显示。这里关键的一点是在头部设置页属性<%@ page contentType="text/html; charset=gb2312" %>,其中charset=gb2312就是告诉JSP引擎本地编码是gb2312,然后JSP引擎就会自动进行转换,不需要手工转了。但是,并不是说就这么一劳永逸了,中文问题在JSP页面之间传参的时候还是存在的,读者只要掌握了编码的转换方式,应付任何中文问题就是转来转去的问题,因此读者应该从根本上理解中文问题,这才是一劳永逸的办法。 
    1、参数传递的例子 
    String name = new String(request.getParameter("name").getBytes("ISO-8859-1")); 
    2、  显示数据库数据的例子 
    <% 
    try { 
    Context ctx = new InitialContext(); 
    javax.sql.DataSource ds = (javax.sql.DataSource)ctx.lookup("mytest"); 
    Connection conn = ds.getConnection(); 
    Statement stmt = conn.createStatement(); 
    ResultSet rset = stmt.executeQuery("select describe from app_para"); 
    while (rset.next()) { %> 
    <br /> <%=new String(rset.getString(1).getBytes("ISO-8859-1")) %> 
    <% } 

    catch (Exception e) { 
    e.printStackTrace(); 

    %>

  • apple_yang于08-09-19 23:26发表:


  • 学习~谢谢斑竹

  • 6132.  JSP中文字符乱码问题
  • 察看原始帖子或发表评论





    [ 电话:0571-85462761 王先生 QQ: 124520435 加入软件QQ群 - 中国杭州 - 浙ICP备06022039号]