在一个JSP页面中,用Java语言写了一段程序,产生一个中文的String变量,此时用System.out.print显示这个中文String,没有问题,然后在这个JSP页面的一个表单中显示这个String变量的时候,当这个变量为一般的中文字符没有问题,若这个String变量为生僻字十则不能显示,如“翀”显示为“?”,请高手解答!谢谢

解决方案 »

  1.   

    <%@ page contentType="text/html; charset=GB2312" %>
    <%@ page language="java" %>
    <%@ page session = "true" %>
    <%@ page errorPage="../ExceptionErrorPage.jsp" %>
    <%@ page import = "java.util.*" %>
    <%@ page import = "com.cascc.avidm.dt.lib.utility.DateFormatter"%>
    <%@ page import = "com.cascc.platform.aa.org.user.UserData"%>
    <%@ page import = "com.cascc.platform.aa.org.ejb20.*"%>
    <%@ page import = "com.cascc.platform.aa.AAContext"%>
    <%@ page import = "com.cascc.avidm.login.model.PersonModel"%>
    <%@ page import = "com.cascc.platform.domain.util.ServiceLocator"%>
    <%@ page import = "com.cascc.avidm.util.AvidmConstDefine"%>
    <%@ page import = "com.cascc.platform.aa.org.position.PositionData"%><%
    String userid="";
    String username=""; try{
    PersonModel person = (PersonModel)session.getAttribute("person");
             userid = person.getUserIID();
    username=person.getUserName();
    System.out.println(username); //这里显示中文正常
                }catch(Exception e){}
    %>
     <html>
     <head>
     <LINK rel="stylesheet" type="text/css" href="../css/avidm.css">
     <META HTTP-EQUIV="expires" CONTENT="Wed, 20 Feb 2000 08:30:00 GMT">
     <META HTTP-EQUIV="Pragma" CONTENT="no-cache">
     <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
     </head><body>
    <form name="tran" method="get" >
    <input type="textt" name="username" value="<%=username%>">//这里显示生僻中文显示为“?”
    </form>
    </body>
    </html>其中引入了很多自己编写的类
      

  2.   

    gb2312是一个相对比较小的字符集,用GBK或者utf-8吧
      

  3.   

    将"<%=username%>"该成
    "<%=new String(username.getBytes("GBK"));%>"
    就可以了
      

  4.   

    在jsp页面文件头中加上<%=request.setCharacterEncoding("gb2312")%>
      

  5.   

    你页面的charset=GB2312都改成 charset=GBK 应该就可以了
      

  6.   

    OnlyFor_love(『不给我分 就剪掉楼主小鸡几』) 
    用你的方法试了,还是不行那?
      

  7.   

    dlc_hot() ,不厚道,说说证明解决的杀
      

  8.   

    <%@page pageEncoding="GB2312"%>
    试试看
      

  9.   

    OnlyFor_love(『不给我分 就剪掉楼主小鸡几』) ( ) 信誉:131  2006-08-18 14:30:00  得分: 0  
     
     
       将"<%=username%>"该成
    "<%=new String(username.getBytes("ISO8859-1"),"GBK");%>"
    就可以了
    这样试试
      
     
      

  10.   

    将"<%=username%>"该成
    "<%=new String(username.getBytes("ISO8859-1"),"GBK")%>"
    表达式后面不要分号的,刚才写错了
      

  11.   

    <%@ page contentType="text/html;charset=GBK"%>
    <html>
    <head>
       <meta http-equiv="Content-Type" content="text/html; charset=GBK" />
    </head>
    换成这样子看看!产生你所说的错误的原因在与gb2312的字符集只包含常见的中文字,
    它是GBK的子集!
      

  12.   

    <%request.setCharacterEncoding("gb2312");%>试试
      

  13.   

    String username=new String(username.getBytes("ISO8859-1"),"GBK");
    System.out.println("username : "+username);
    一定是对的,今天我刚好碰到这个问题............................
      

  14.   

    可以在页面顶端调一个指令啊<%@ page charset=gb2312"%>就可以解决用jsp动作嵌入的乱码问题啊
      

  15.   

    欢迎光监点石成金网 http://www.boxigroup.com 网站提供web开发(j2ee .net asp php javascript、c#等) c/s开发(delphi、vb、vc、pb、cb等) 数据库开发(oracle、sqlserver、db2、access、mysql、Postgresql、informix)等学习资料,希望能为你解决燃眉之急 ,请把本网站加入收藏夹,以备不时查询之需 bs+cs讨论群(9638134)
      

  16.   

    欢迎光监点石成金网 http://www.boxigroup.com 网站提供web开发(j2ee .net asp php javascript、c#等) c/s开发(delphi、vb、vc、pb、cb等) 数据库开发(oracle、sqlserver、db2、access、mysql、Postgresql、informix)等学习资料,希望能为你解决燃眉之急 ,请把本网站加入收藏夹,以备不时查询之需 bs+cs讨论群(9638134)