我在工程中new了一个新的对象,从前台接到的数据在控制台打印没有问题,但是存到数据库就成了乱码。到底是hibernate 的问题还是数据库的问题啊 ????public ActionForward addnews(ActionMapping mapping, ActionForm actionForm, 
HttpServletRequest request, HttpServletResponse response) throws Exception {

String title = request.getParameter("title");
String inputtime = request.getParameter("inputtime");
String newscontent = request.getParameter("newscontent");

System.out.println("=============="+title);
System.out.println("=============="+newscontent);
News news = new News(); 
news.setTitle(title);
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-DD HH:mm:ss");
news.setInputtime(sdf.parse(inputtime));
news.setContent(newscontent);
newsService.addNews(news);


return mapping.findForward("after");
}

解决方案 »

  1.   

    数据库的编码问题,hibernate不会改变数据编码的.
      

  2.   

    一层一层分写 先在struts中放上System.out.println打印下接受到的参数 然后在tomcat看下是不是乱码 如果是乱码 那就是jsp页面的编码问题 如果不是乱码 那就是mysql的编码问题 mysql编码问题 网上处理方法很多的 你找下就可以了
      

  3.   


    你可以改变数据库的默认编码
    如果要改变整个mysql的编码格式: 
    启动mysql的时候,mysqld_safe命令行加入 
    –default-character-set=utf8 
    如果只是改变某个数据库的编码
    在mysql提示符后输入命令 
    alter database db_name default character set utf8;