在做execl上传的时候,我遇到一个问题,插入MYSQL数据库中的汉字都变为乱码. 请高手指定下..谢谢了

解决方案 »

  1.   

    转换一下编码,new String ("" ,charsetName ),mysql应该转换成ISO8859-1
      

  2.   

     private String toEncod(String info)
        {
            byte[] b = null;
            try {
                b= info.getBytes("ISO-8859-1");
            } catch (UnsupportedEncodingException ex) {
            }
            return new String(b);
        }
      

  3.   

    能不能根据实际情况写一下
     try {
    JdbcTemplate jt = new JdbcTemplate(WebApp.getDataSource());String sql="insert into qms_costlist(partcode,partname,partmodel,standard) "
        +           "  VALUES('"
            +            bean.getPartcode()        + "','"
            +            bean.getPartname()     + "','"
            +            bean.getPartmodel()       + "','"
            +            bean.getStandard()       + "'"
    +             ")";
    System.out.println(sql);
           jt.update(sql);
    出乱吗是 bean.getPartname()这个字段 应该在他后面用什么样的方法写转化?能帮我写一下吗 万分感谢了..
      

  4.   

    mysql数据库出现的问题 用的STRUTCTS框架  没有my.ini配置文件我也把latin改成gbk了.
    我的ACTION如下代码:
    public class UploadAction extends HttpServlet{
    private static final long serialVersionUID = 1L; private String tempPath = "fileTmp\\"; // 临时文件目录 public void doPost(HttpServletRequest request,
        HttpServletResponse response)throws IOException, ServletException{ request.setCharacterEncoding("gbk");
    response.setContentType("text/html; charset=gbk");
    tempPath = getServletConfig ( ).getServletContext ( ).getRealPath ( "/" )+tempPath;
    String gerrors = null;
    UploadInfo dao = null;
    try {
     dao = (UploadInfo)WebApp.getBean("UploadInfo");
    } catch (Exception e1) {
    e1.printStackTrace();
    } List ceAll = new ArrayList();
            try {         DiskFileItemFactory factory = new DiskFileItemFactory();//创建基于硬盘存储的工厂
             ServletFileUpload excelUp = new ServletFileUpload(factory);
             factory.setSizeThreshold(14096);
             List fileItems = excelUp.parseRequest(request);
              Iterator i = fileItems.iterator();
             while(i.hasNext()) {
                    FileItem fi = (FileItem)i.next();
                    BaseUpLoadBean upBean = new BaseUpLoadBean();
                    upBean.getWorkBook( fi.getInputStream());//获取excel工作区
                    int rows = upBean.getSheet(0).getRows();//获取第一个sheet页所有的行
                    int column = upBean.getSheet(0).getColumns();//获取第一个sheet页所有的列
                    boolean flag = false;
                    boolean cellFlag = false;
                              if(flag){//如果是数值
                                UploadBean bean=new UploadBean();
                                String num=(String)ce.get(0);
                                bean.setPartcode(num.trim());
                                String name=(String)ce.get(1);
                                bean.setPartname(name.trim());
                                bean.setPartmodel((String)ce.get(4));
                                bean.setStandard((String)ce.get(5));
                             dao.insert(bean);
                                         }也就是红字的出现乱吗
      

  5.   

    可以在写入数据库以前可以利用str.getBytes("ISO-8859-1")将字符串编码方式改变一下就好了,其中str是字符串对象