关于将字符串插入到java.sql.Blob类型里面会出现乱码,并且显示乱码的问题~!谢谢大侠们了.....
我用的是oracle数据库
插入数据方法:
  String txtCont=StringTool.getValidatedString(mySmartUpload.getRequest().getParameter("txtContent"));
  java.io.InputStream inStream = new java.io.StringBufferInputStream(txtCont);
  Blob txtContent = Hibernate.createBlob(inStream);
显示方法:
new String( tbg12.getTbg1206().getBytes(1,(int)tbg12.getTbg1206().length()), "GBK" )

解决方案 »

  1.   

    为什么要将字符串插入到java.sql.Blob类型中?
    插入到varchar2里面嘛.
    实在要存可以把字符串转化成byte数组,再插
      

  2.   

    因为插入到varchar2里面的类型长度不够,所以要用java.sql.Blob类型
      

  3.   

    我也做了一个把文件上传到数据的程序.
    StringTool.getValidatedString(mySmartUpload.getRequest().getParameter("txtContent"));这句话是取得文件内容吗?
      

  4.   

    Sunny319(努力学习java中.) ( ) 信誉:100    Blog StringTool.getValidatedString(mySmartUpload.getRequest().getParameter("txtContent"));
    这句话是用来取文件内容的........
      

  5.   

    ByteArrayInputStream fin=new ByteArrayInputStream(this.fileInfo.getFileContent());
    pstmt = conn.prepareStatement("INSERT INTO FILES(FILENO,FILENAME,FILECONTENT,FILETYPE,CUSTNO,FILEDESC,FILESIZE,HD_USER,CRT_DATE) VALUES(FILES_SEQ.NEXTVAL,?,?,?,?,?,?,?,?)");
    pstmt.setBinaryStream(2, fin,(new Integer(fileInfo.getFileSize().toString())).intValue());我的fileInfo.getFileContent()得定义:
        private byte[] fileContent=null;/*文件内容*/
        private java.math.BigDecimal fileSize;/*文件大小*/我的fileContent有点不同得是我保存得是这个文件,不仅经是文件得内容!