英文可以插进去的  怎么解决这问题  

解决方案 »

  1.   

    插不进去还是插进去乱码?打印出的sql语句直接在sql客户端执行试试?是不是拼成的sql就已经乱码?还有db字符集是否为utf8?
      

  2.   

    有中文的sql语句打印出来瞧瞧呢
      

  3.   

    把表的编码,改成utf-8就可以了
      

  4.   

    不是在mysql中插进去 在mysql中插是可以插进去的
    我是用jdbc连接数据库的 全英文的数据可以插进去  带中文的数据就直接跳到错误的页面了  
      

  5.   


    不会啊 我表里的是  char(10) 不会两个中文都装不下把 
      

  6.   

    把Sql贴出来看看吧。  要么你把sql直接到mysql里面去执行。看结果
      

  7.   

    char(10)
    改成varchar2(10)试试
      

  8.   


    insert into user (id ,name) values(1,'我们');  在mysql中可以插进去的 
    这是我类里的sql:  private static final String save="insert into user values(?,?,?,?,?,?,?,?)";
      

  9.   


    char(10) 是可以的 
      

  10.   

    你看?号的参数值了么?没有乱码?实在不行,你先别用PreparedStatment,直接用Statment和 + 号去拼sql,
    再试试jdbc能执行不?
      

  11.   


    在mysql 中插入中文 没有乱码  
    jdbc没有问题的 我全英文的数据可以插进去的 
    有中文他就跳到错误的页面去了 这是代码  public void  save(Project pro)throws Exception{
    Connection conn=DBUtil.getConnection();
    PreparedStatement pst=conn.prepareStatement(save);
    pst.setInt(1, pro.getId());
    pst.setString(2, pro.getPsw());
    pst.setDate(3, pro.getYear());
    pst.setString(4, pro.getName());
    pst.setString(5, pro.getXingbie());
    pst.setString(6, pro.getDizhi());
    pst.setString(7, pro.getPhoto());
    pst.setString(8, pro.getXueli());
    pst.executeUpdate();
    DBUtil.close(conn);
    }
      

  12.   


    页面的代码
    <%@page pageEncoding="utf-8" 
    contentType="text/html;charset=utf-8"%>
    <html>
    <head></head>
    <body style="font-size:30px;" onload="load()">
    <font size="1"></font><form action="/work2/project!add.action"
     method="post" >
    编号:<input id="id" type="text" name="pro.id"><br/>密码:<input id="psw" type="text" name="pro.psw"><br/>
    出生年月:<input id="year" type="text" name="pro.year"><br/>姓名:<input id="name" type="text" name="pro.name"><br/>
    性别:<input id="xingbie" type="text" name="pro.xingbie"><br/>地址:<input  id="dizhi" type="text" name="pro.dizhi"><br/>
    图片:<input id="photo" type="text" name="pro.photo"><br/>学历:<input id="xueli" type="text" name="pro.xueli"><br/>
    <input type="submit" value="添加" >
    </form>
    <a href="/work2/list.action" >列表</a>
    </body>
    </html>添加
     public String add(){
         try{proDao.save(pro);
         return "success";
         }catch (Exception e){
         return "error";
         }
        }
      

  13.   

    catch (Exception e){
      e.printStackTrace();
      return "error";
      }看看具体是什么错
      

  14.   


    java.sql.SQLException: Incorrect string value: '\xE5\x91\xA8\xE5\x89\x91' for column 'name' at row 1
      

  15.   

    好像只有Oracle才有varchar2吧
      

  16.   

    问题找到了,
    你把值为'\xE5\x91\xA8\xE5\x89\x91'字符串
    插入到char(10)的字段中了,肯定超了吧,
    估计还是字符集的问题,
    你先把char(10)改成char(50),
    看jdbc能不能正常插入,只是插入一些怪异的字符罢了
      

  17.   

    对头,MySQL用varchar或者nvarchar也行
      

  18.   

    我该成char(50) 还是这个错误
      

  19.   

    是不是你的数据库的编码与你当前用的数据编码不一致呀,用 show variables like 'character%' 查看一下你的数据库编码是否一致
      

  20.   


    就 character_set_database ,character_set_system 是utf8的 其他都是latinn1  
      

  21.   

    我的问题解决了  是编码的问题
    在创表的时候create table user ()后面加个CHARSET=utf8谢谢前面的各位了。