补充一句:从ecxel取出来的是中文(tomcat后台显示是中文),但是插入数据库就变成问号了,怎么回事?

解决方案 »

  1.   

    mysql的默认编码是latin1,你去修改下
      

  2.   

    cell = row.getCell((short) 0);
       name = cell.getStringCellValue().trim();
    改为
     cell = row.getCell((short) 0);
     cell.setEncoding(HSSFCell.ENCODING_UTF_16);
     name = cell.getStringCellValue().trim();
      

  3.   

    更改成gb2312,excel数据无法导入了,更改成latin1就可以导入!我在后台看了一下,从ecxel取出来的是中文(tomcat后台显示是中文),但是插入数据库就变成问号了,怎么回事?
      

  4.   

    sgrl(小关) 按照你的办法,数据库的值还是问号
      

  5.   

    name=new String(name.getBytes("ISO8859-1"),"GBK");
    改成name=new String(name.getBytes("GBK"),"latin1");试一下。另外,我想在此处取session的值,作为一个参数,插入数据库中,请问如何取得,session登录帐户?session值是指什么?sessionId?还是你想取得当前的用户名?
    如果是用户名,最好在用户登陆的同时记录:session.setAttribute("userName",user);//user为用户名。这样你就可以取得用户名了:String userName = (String)session.getAttribute("userName");再存入数据库。如果只是sessionId:request.getSession.getId();就能得到了。
      

  6.   

    上面的回答补充一下,"GBK"为你的机器使用的字符集,"latin1"为你的数据库字符集。如果不是这两种,自己改成对应的。试一下,看行不行。
      

  7.   

    String userName = (String)session.getAttribute("userName");编译的时候出现错误:e:\poi\POITest.java:74: cannot resolve symbol
    symbol  : variable session
    location: class poi.POITest
    String userName = (String)session.getAttribute("userName");
                              ^
      

  8.   

    谢谢 norwolfli(烟灰) 按照你的办法乱码已经解决了但是增加这句:String userName = (String)session.getAttribute("userName");编译的时候出现错误:e:\poi\POITest.java:74: cannot resolve symbol
    symbol  : variable session
    location: class poi.POITest
    String userName = (String)session.getAttribute("userName");
      

  9.   

    汗一下,先写上这个:HttpSession session = request.getSession();latin1字符集好象表示不了中文,要想在数据库中直接看到中文,你要改一下mysql的字符集,改成UTF-8吧。name=new String(name.getBytes("GBK"),"UTF-8");写这句。把你原来的数据删掉,从新写几条进去,看行不行。
      

  10.   

    乱码解决了。现在的问题是如何取得 session中的帐户!
      

  11.   

    你写的不是servlet?不会是一个普通的类吧
    如果是个普通的类就不行了。
      

  12.   

    在class中如何取得session的登录帐户?
      

  13.   

    就是普通的java文件,用javac编译成的class文件,题目中的内容就是这个类的代码!
      

  14.   

    怎么解决这个问题,在class中取得session中的帐户?
      

  15.   

    public static boolean readExcelToDB2() {}这个方法,不要在main方法中调用,去servlet里调用。把方法改成:
    public static boolean readExcelToDB2(String userName) {}
    去servlet里取到userName,当参数传进来。我不知道怎么直接在一个POJO中取得session.一般POJO都是被调用的。
      

  16.   

    我对JSP不是很熟悉,请问,如果通过JSP向我这个class中传值,应该怎么做?能给个示例吗?
      

  17.   

    <% page import="poi.POITest" %>//最顶上
    <html>
    <body>
    <%
      session.getAttribute("userName");
      POITest.readExcelToDB2(userName); 
    %>
    ....
    ....
    </body>
    </html>